<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 7.0.4" type="baseline" client="gradle" name="AGP (7.0.4)" variant="all" version="7.0.4">

    <issue
        id="MissingSuperCall"
        message="Overriding method should call `super.onRequestPermissionsResult`"
        errorLine1="    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="510"
            column="17"/>
    </issue>

    <issue
        id="ScopedStorage"
        message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 11+, even when using `requestLegacyExternalStorage`"
        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; />"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="AndroidManifest.xml"
            line="37"
            column="36"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
        errorLine1="    private static final String CHINESE_LANGUAGE = Locale.CHINESE.getLanguage().toLowerCase();"
        errorLine2="                                                                                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="27"
            column="81"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
        errorLine1="    private static final String JAPANESE_LANGUAGE = Locale.JAPANESE.getLanguage().toLowerCase();"
        errorLine2="                                                                                  ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="28"
            column="83"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
        errorLine1="    private static final String KOREAN_LANGUAGE = Locale.KOREAN.getLanguage().toLowerCase();"
        errorLine2="                                                                              ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="29"
            column="79"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
        errorLine1="                mLanguage = mLocale.getLanguage().toLowerCase();"
        errorLine2="                                                  ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="45"
            column="51"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
        errorLine1="        name = name.trim().toLowerCase();"
        errorLine2="                           ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1552"
            column="28"/>
    </issue>

    <issue
        id="Range"
        message="Value must be ≥ 0 (was -1)"
        errorLine1="            columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists.Members.AUDIO_ID);"
        errorLine2="            ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="724"
            column="13"/>
    </issue>

    <issue
        id="Range"
        message="Value must be ≥ 0 (was -1)"
        errorLine1="                list[i] = cursor.getLong(columnIndex);"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="730"
            column="42"/>
    </issue>

    <issue
        id="Range"
        message="Value must be ≥ 0"
        errorLine1="                final long lastUpdate = c.getLong(c.getColumnIndex(columnName));"
        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="208"
            column="51"/>
    </issue>

    <issue
        id="Range"
        message="Value must be ≥ 0"
        errorLine1="                final int lastUpdatedSongCount = c.getInt(c.getColumnIndex(countColumnName));"
        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="211"
            column="59"/>
    </issue>

    <issue
        id="Range"
        message="Value must be ≥ 0"
        errorLine1="                long id = playlistCursor.getLong(playlistCursor.getColumnIndex("
        errorLine2="                                                 ^">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="186"
            column="50"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: Cursor.FIELD_TYPE_NULL, Cursor.FIELD_TYPE_INTEGER, Cursor.FIELD_TYPE_FLOAT, Cursor.FIELD_TYPE_STRING, Cursor.FIELD_TYPE_BLOB"
        errorLine1="        return 0;"
        errorLine2="               ~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="154"
            column="16"/>
    </issue>

    <issue
        id="StringFormatMatches"
        message="Wrong argument type for formatting argument &apos;#1&apos; in `duration_format`: conversion is &apos;`d`&apos;, received `String` (argument #2 in method call)"
        errorLine1="        return String.format(durationFormat, hoursString, minutesString);"
        errorLine2="                                             ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="274"
            column="46"/>
        <location
            file="res/values-ug/strings.xml"
            line="137"
            column="5"
            message="Conflicting argument declaration here"/>
    </issue>

    <issue
        id="StringFormatMatches"
        message="Wrong argument type for formatting argument &apos;#2&apos; in `duration_format`: conversion is &apos;`d`&apos;, received `String` (argument #3 in method call)"
        errorLine1="        return String.format(durationFormat, hoursString, minutesString);"
        errorLine2="                                                          ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="274"
            column="59"/>
        <location
            file="res/values-ug/strings.xml"
            line="137"
            column="5"
            message="Conflicting argument declaration here"/>
    </issue>

    <issue
        id="StringFormatMatches"
        message="Inconsistent formatting types for argument #1 in format string `duration_format` (&apos;%1$d&apos;): Found both &apos;`d`&apos; here and &apos;`s`&apos; in values-zh-rHK/strings.xml"
        errorLine1="    &lt;string name=&quot;duration_format&quot;>&lt;xliff:g id=&quot;HOURS&quot;>%1$d&lt;/xliff:g> سائەت &lt;xliff:g id=&quot;MINUTES&quot;>%2$d&lt;/xliff:g> مىنۇت&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="137"
            column="5"/>
        <location
            file="res/values-zh-rHK/strings.xml"
            line="128"
            column="5"
            message="Conflicting argument type (`s&apos;) here"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nalbums&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="19"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nalbums&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="19"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nsongs&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="25"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nsongs&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="25"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nhours&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="31"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nhours&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="31"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nminutes&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="37"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;Nminutes&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="37"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtrackstoplaylist&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="43"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtrackstoplaylist&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="43"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtracksfromplaylist&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="49"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtracksfromplaylist&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="49"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtrackstoqueue&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="55"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtrackstoqueue&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="55"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;cs&quot; (Czech) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtracksdeleted&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-cs/plurals.xml"
            line="61"
            column="5"/>
    </issue>

    <issue
        id="UnusedQuantity"
        message="For language &quot;sk&quot; (Slovak) the following quantities are not relevant: `many`"
        errorLine1="    &lt;plurals name=&quot;NNNtracksdeleted&quot;>"
        errorLine2="    ^">
        <location
            file="res/values-sk/plurals.xml"
            line="61"
            column="5"/>
    </issue>

    <issue
        id="UnsupportedChromeOsHardware"
        message="Expecting `android:required=&quot;false&quot;` for this hardware feature that may not be supported by all Chrome OS devices"
        errorLine1="    &lt;uses-feature android:name=&quot;android.hardware.sensor.accelerometer&quot; />"
        errorLine2="     ~~~~~~~~~~~~">
        <location
            file="AndroidManifest.xml"
            line="65"
            column="6"/>
    </issue>

    <issue
        id="AllowBackup"
        message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup, or just set `android:fullBackupOnly=true`. More info: https://developer.android.com/guide/topics/data/autobackup"
        errorLine1="        android:allowBackup=&quot;true&quot;"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
        <location
            file="AndroidManifest.xml"
            line="69"
            column="9"/>
    </issue>

    <issue
        id="Recycle"
        message="This animation should be started with `#start()`"
        errorLine1="            mValueAnimators[i] = new ValueAnimator();"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="178"
            column="34"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="This field leaks a context object"
        errorLine1="    protected final Context mContext;"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="51"
            column="5"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
        errorLine1="            new AsyncTask&lt;Void, Void, BitmapWithColors>() {"
        errorLine2="            ^">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="225"
            column="13"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
        errorLine1="        ElevenUtils.execute(new AsyncTask&lt;Void, Void, Void>() {"
        errorLine2="                            ^">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="134"
            column="29"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
        errorLine1="        ElevenUtils.execute(new AsyncTask&lt;Void, Void, Void>() {"
        errorLine2="                            ^">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="471"
            column="29"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
        errorLine1="        ElevenUtils.execute(new AsyncTask&lt;Void, Void, Void>() {"
        errorLine2="                            ^">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="493"
            column="29"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="This `AsyncTask` class should be static or leaks might occur (anonymous android.os.AsyncTask)"
        errorLine1="        ElevenUtils.execute(new AsyncTask&lt;Void, Void, Void>() {"
        errorLine2="                            ^">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="519"
            column="29"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="Do not place Android context classes in static fields (static reference to `LocalizedStore` which has field `mContext` pointing to `Context`); this is a memory leak"
        errorLine1="    private static LocalizedStore sInstance = null;"
        errorLine2="            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="53"
            column="13"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="Do not place Android context classes in static fields (static reference to `MusicDB` which has field `mContext` pointing to `Context`); this is a memory leak"
        errorLine1="    private static MusicDB sInstance = null;"
        errorLine2="            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicDB.java"
            line="44"
            column="13"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="Do not place Android context classes in static fields (static reference to `PlaylistArtworkStore` which has field `mContext` pointing to `Context`); this is a memory leak"
        errorLine1="    private static PlaylistArtworkStore sInstance = null;"
        errorLine2="            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="33"
            column="13"/>
    </issue>

    <issue
        id="LogConditional"
        message="The log call Log.d(...) should be conditional: surround with `if (Log.isLoggable(...))` or `if (BuildConfig.DEBUG) { ... }`"
        errorLine1="        Log.d(TAG, &quot;Locale Changed from: &quot; + mCurrentLocales + &quot; to &quot; + localeSet);"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSetManager.java"
            line="77"
            column="9"/>
    </issue>

    <issue
        id="LogConditional"
        message="The log call Log.i(...) should be conditional: surround with `if (Log.isLoggable(...))` or `if (BuildConfig.DEBUG) { ... }`"
        errorLine1="        Log.i(TAG, &quot;AddressBook Labels [&quot; + mLocales.toString() + &quot;]: &quot;"
        errorLine2="        ^">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="191"
            column="9"/>
    </issue>

    <issue
        id="HandlerLeak"
        message="This `Handler` class should be static or leaks might occur (anonymous android.content.AsyncQueryHandler)"
        errorLine1="        sAsyncQueryHandler = new AsyncQueryHandler(getContentResolver()) {"
        errorLine2="                             ^">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="222"
            column="30"/>
    </issue>

    <issue
        id="Overdraw"
        message="Possible overdraw: Root element paints background `@color/activity_album_detail_background_color` with a theme that also paints a background (inferred theme is `@style/Eleven.Theme`)"
        errorLine1="    android:background=&quot;@color/activity_album_detail_background_color&quot; >"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/activity_album_detail.xml"
            line="4"
            column="5"/>
    </issue>

    <issue
        id="Overdraw"
        message="Possible overdraw: Root element paints background `@color/activity_artist_detail_background_color` with a theme that also paints a background (inferred theme is `@style/Eleven.Theme`)"
        errorLine1="    android:background=&quot;@color/activity_artist_detail_background_color&quot;>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/activity_artist_detail.xml"
            line="4"
            column="5"/>
    </issue>

    <issue
        id="Overdraw"
        message="Possible overdraw: Root element paints background `@color/header_action_bar_color` with a theme that also paints a background (inferred theme is `@style/Eleven.Theme`)"
        errorLine1="    android:background=&quot;@color/header_action_bar_color&quot;"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/header_bar.xml"
            line="25"
            column="5"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.list_item_header_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;list_item_header_size&quot;>16.0sp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values/dimens.xml"
            line="39"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.layout.list_header` appears to be unused"
        errorLine1="&lt;TextView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
        errorLine2="^">
        <location
            file="res/layout/list_header.xml"
            line="18"
            column="1"/>
    </issue>

    <issue
        id="UsableSpace"
        message="Consider also using `StorageManager#getAllocatableBytes` and `allocateBytes` which will consider clearable cached data"
        errorLine1="        return path.getUsableSpace();"
        errorLine2="                    ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="605"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `TAG` of class `AlbumArtPagerAdapter` requires synthetic accessor"
        errorLine1="                    Log.d(TAG, &quot;[&quot; + mFragment.mAudioId + &quot;] Loading image: &quot;"
        errorLine2="                          ~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="283"
            column="27"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAudioId` of class `AlbumArtFragment` requires synthetic accessor"
        errorLine1="                    Log.d(TAG, &quot;[&quot; + mFragment.mAudioId + &quot;] Loading image: &quot;"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="283"
            column="48"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `loadImageAsync` of class `AlbumArtFragment` requires synthetic accessor"
        errorLine1="                mFragment.loadImageAsync(result);"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="290"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `TAG` of class `AlbumArtPagerAdapter` requires synthetic accessor"
        errorLine1="                Log.d(TAG, &quot;No Image found for audioId: &quot; + mFragment.mAudioId);"
        errorLine2="                      ~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="292"
            column="23"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAudioId` of class `AlbumArtFragment` requires synthetic accessor"
        errorLine1="                Log.d(TAG, &quot;No Image found for audioId: &quot; + mFragment.mAudioId);"
        errorLine2="                                                                      ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="292"
            column="71"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAlbumId` of class `AlbumDetailFragment` requires synthetic accessor"
        errorLine1="                return new Album(mAlbumId, mAlbumName, mArtistName, -1, null);"
        errorLine2="                                 ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="97"
            column="34"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAlbumName` of class `AlbumDetailFragment` requires synthetic accessor"
        errorLine1="                return new Album(mAlbumId, mAlbumName, mArtistName, -1, null);"
        errorLine2="                                           ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="97"
            column="44"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mArtistName` of class `AlbumDetailFragment` requires synthetic accessor"
        errorLine1="                return new Album(mAlbumId, mAlbumName, mArtistName, -1, null);"
        errorLine2="                                                       ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="97"
            column="56"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSongAdapter` of class `AlbumDetailFragment` requires synthetic accessor"
        errorLine1="                return mSongAdapter.getItem(position);"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="153"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAlbumId` of class `AlbumDetailFragment` requires synthetic accessor"
        errorLine1="                return mAlbumId;"
        errorLine2="                       ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="158"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAdapter` of class `AlbumFragment` requires synthetic accessor"
        errorLine1="                return mAdapter.getItem(position);"
        errorLine2="                       ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="96"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mLoadingEmptyContainer` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                    mLoadingEmptyContainer.showLoading();"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="78"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mLoadingEmptyContainer` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                    mLoadingEmptyContainer.setVisibility(View.GONE);"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="96"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSongAdapter` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                    handler.post(() -> mSongAdapter.setData(data));"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="98"
            column="40"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSongAdapter` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                    mSongAdapter.unload();"
        errorLine2="                    ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="103"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAlbumAdapter` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                    handler.post(() -> mAlbumAdapter.setData(data));"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="125"
            column="40"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAlbumAdapter` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                    mAlbumAdapter.unload();"
        errorLine2="                    ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="130"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mArtistId` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                return new Artist(mArtistId, mArtistName, 0, 0);"
        errorLine2="                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="174"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mArtistName` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                return new Artist(mArtistId, mArtistName, 0, 0);"
        errorLine2="                                             ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="174"
            column="46"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mHero` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                        mHero.getViewTreeObserver().removeOnGlobalLayoutListener(this);"
        errorLine2="                        ~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="200"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mArtistName` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                                loadArtistImage(mArtistName, mHero, true);"
        errorLine2="                                                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="202"
            column="49"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mHero` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                                loadArtistImage(mArtistName, mHero, true);"
        errorLine2="                                                             ~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="202"
            column="62"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSongAdapter` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                return mSongAdapter.getItem(position);"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="234"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAlbumAdapter` of class `ArtistDetailFragment` requires synthetic accessor"
        errorLine1="                return mAlbumAdapter.getItem(position);"
        errorLine2="                       ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="259"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAdapter` of class `ArtistFragment` requires synthetic accessor"
        errorLine1="                return mAdapter.getItem(position);"
        errorLine2="                       ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="108"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `TAG` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                    Log.w(TAG, &quot;Unexpected page position of &quot; + position"
        errorLine2="                          ~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="377"
            column="27"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `refreshCurrentTime` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                final long next = mAudioPlayer.get().refreshCurrentTime();"
        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="553"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `queueNextRefresh` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                mAudioPlayer.get().queueNextRefresh(next);"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="554"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `createAndSetAdapter` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                    mReference.get().createAndSetAdapter();"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="584"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `updateNowPlayingInfo` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                audioPlayerFragment.updateNowPlayingInfo();"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="588"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mMainPlaybackControls` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                audioPlayerFragment.mMainPlaybackControls.updatePlayPauseState();"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="590"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizerView` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                audioPlayerFragment.mVisualizerView.setPlaying(MusicUtils.isPlaying());"
        errorLine2="                                    ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="591"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mMainPlaybackControls` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                audioPlayerFragment.mMainPlaybackControls.updateRepeatState();"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="595"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mMainPlaybackControls` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                audioPlayerFragment.mMainPlaybackControls.updateShuffleState();"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="597"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `createAndSetAdapter` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                audioPlayerFragment.createAndSetAdapter();"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="600"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `createAndSetAdapter` of class `AudioPlayerFragment` requires synthetic accessor"
        errorLine1="                audioPlayerFragment.createAndSetAdapter();"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="603"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `pausePlayback` of class `AudioPreviewActivity` requires synthetic accessor"
        errorLine1="                    pausePlayback();"
        errorLine2="                    ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="160"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `onQueryComplete` of class `AudioPreviewActivity` requires synthetic accessor"
        errorLine1="                AudioPreviewActivity.this.onQueryComplete(token, cursor);"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="225"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlayPauseButtonContainer` of class `BaseActivity` requires synthetic accessor"
        errorLine1="                baseActivity.mPlayPauseButtonContainer.updateState();"
        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="361"
            column="30"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlayPauseProgressButton` of class `BaseActivity` requires synthetic accessor"
        errorLine1="                baseActivity.mPlayPauseProgressButton.updateState();"
        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="362"
            column="30"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `journalWriter` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                if (journalWriter == null) {"
        errorLine2="                    ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="170"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `trimToSize` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                trimToSize();"
        errorLine2="                ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="173"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `journalRebuildRequired` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                if (journalRebuildRequired()) {"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="174"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `rebuildJournal` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                    rebuildJournal();"
        errorLine2="                    ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="175"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `redundantOpCount` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                    redundantOpCount = 0;"
        errorLine2="                    ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="176"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `Entry` requires synthetic accessor"
        errorLine1="            entry = new Entry(key);"
        errorLine2="                    ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="312"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `readable` of class `Entry` requires synthetic accessor"
        errorLine1="            entry.readable = true;"
        errorLine2="                  ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="318"
            column="19"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="            entry.currentEditor = null;"
        errorLine2="                  ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="319"
            column="19"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `setLengths` of class `Entry` requires synthetic accessor"
        errorLine1="            entry.setLengths(parts);"
        errorLine2="            ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="320"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `Editor` requires synthetic accessor"
        errorLine1="            entry.currentEditor = new Editor(entry);"
        errorLine2="                                  ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="322"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="            entry.currentEditor = new Editor(entry);"
        errorLine2="                  ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="322"
            column="19"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="            if (entry.currentEditor == null) {"
        errorLine2="                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="338"
            column="23"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `lengths` of class `Entry` requires synthetic accessor"
        errorLine1="                    size += entry.lengths[t];"
        errorLine2="                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="340"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="                entry.currentEditor = null;"
        errorLine2="                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="343"
            column="23"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="                if (entry.currentEditor != null) {"
        errorLine2="                          ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="375"
            column="27"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `key` of class `Entry` requires synthetic accessor"
        errorLine1="                    writer.write(DIRTY + &apos; &apos; + entry.key + &apos;\n&apos;);"
        errorLine2="                                                     ~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="376"
            column="54"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `key` of class `Entry` requires synthetic accessor"
        errorLine1="                    writer.write(CLEAN + &apos; &apos; + entry.key + entry.getLengths() + &apos;\n&apos;);"
        errorLine2="                                                     ~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="378"
            column="54"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `readable` of class `Entry` requires synthetic accessor"
        errorLine1="        if (!entry.readable) {"
        errorLine2="                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="422"
            column="20"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `Snapshot` requires synthetic accessor"
        errorLine1="        return new Snapshot(ins);"
        errorLine2="               ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="452"
            column="16"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `sequenceNumber` of class `Entry` requires synthetic accessor"
        errorLine1="                || entry.sequenceNumber != expectedSequenceNumber)) {"
        errorLine2="                         ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="468"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `Entry` requires synthetic accessor"
        errorLine1="            entry = new Entry(key);"
        errorLine2="                    ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="472"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="        } else if (entry.currentEditor != null) {"
        errorLine2="                         ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="474"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `Editor` requires synthetic accessor"
        errorLine1="        Editor editor = new Editor(entry);"
        errorLine2="                        ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="478"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="        entry.currentEditor = editor;"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="479"
            column="15"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `entry` of class `Editor` requires synthetic accessor"
        errorLine1="        Entry entry = editor.entry;"
        errorLine2="                             ~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="488"
            column="30"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="        if (entry.currentEditor != editor) {"
        errorLine2="                  ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="489"
            column="19"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `readable` of class `Entry` requires synthetic accessor"
        errorLine1="        if (success &amp;&amp; !entry.readable) {"
        errorLine2="                              ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="494"
            column="31"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `written` of class `Editor` requires synthetic accessor"
        errorLine1="                if (!editor.written[i]) {"
        errorLine2="                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="496"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `lengths` of class `Entry` requires synthetic accessor"
        errorLine1="                    long oldLength = entry.lengths[i];"
        errorLine2="                                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="514"
            column="44"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `lengths` of class `Entry` requires synthetic accessor"
        errorLine1="                    entry.lengths[i] = newLength;"
        errorLine2="                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="516"
            column="27"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="        entry.currentEditor = null;"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="525"
            column="15"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `readable` of class `Entry` requires synthetic accessor"
        errorLine1="        if (entry.readable | success) {"
        errorLine2="                  ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="526"
            column="19"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `readable` of class `Entry` requires synthetic accessor"
        errorLine1="            entry.readable = true;"
        errorLine2="                  ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="527"
            column="19"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `key` of class `Entry` requires synthetic accessor"
        errorLine1="            journalWriter.write(CLEAN + &apos; &apos; + entry.key + entry.getLengths() + &apos;\n&apos;);"
        errorLine2="                                                    ~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="528"
            column="53"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `sequenceNumber` of class `Entry` requires synthetic accessor"
        errorLine1="                entry.sequenceNumber = nextSequenceNumber++;"
        errorLine2="                      ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="530"
            column="23"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `key` of class `Entry` requires synthetic accessor"
        errorLine1="            lruEntries.remove(entry.key);"
        errorLine2="                                    ~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="533"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `key` of class `Entry` requires synthetic accessor"
        errorLine1="            journalWriter.write(REMOVE + &apos; &apos; + entry.key + &apos;\n&apos;);"
        errorLine2="                                                     ~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="534"
            column="54"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="        if (entry == null || entry.currentEditor != null) {"
        errorLine2="                                   ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="564"
            column="36"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `lengths` of class `Entry` requires synthetic accessor"
        errorLine1="            size -= entry.lengths[i];"
        errorLine2="                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="573"
            column="27"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `lengths` of class `Entry` requires synthetic accessor"
        errorLine1="            entry.lengths[i] = 0;"
        errorLine2="                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="574"
            column="19"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="            if (entry.currentEditor != null) {"
        errorLine2="                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="618"
            column="23"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="                entry.currentEditor.abort();"
        errorLine2="                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="619"
            column="23"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `readable` of class `Entry` requires synthetic accessor"
        errorLine1="            this.written = (entry.readable) ? null : new boolean[valueCount];"
        errorLine2="                                  ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="693"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `valueCount` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="            this.written = (entry.readable) ? null : new boolean[valueCount];"
        errorLine2="                                                                 ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="693"
            column="66"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `valueCount` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="            if (index &lt; 0 || index >= valueCount) {"
        errorLine2="                                      ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="704"
            column="39"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `valueCount` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                        + &quot;of &quot; + valueCount);"
        errorLine2="                                  ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="707"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `currentEditor` of class `Entry` requires synthetic accessor"
        errorLine1="                if (entry.currentEditor != this) {"
        errorLine2="                          ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="710"
            column="27"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `readable` of class `Entry` requires synthetic accessor"
        errorLine1="                if (!entry.readable) {"
        errorLine2="                           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="713"
            column="28"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `directory` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                    directory.mkdirs();"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="723"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `NULL_OUTPUT_STREAM` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                        return NULL_OUTPUT_STREAM;"
        errorLine2="                               ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="728"
            column="32"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `FaultHidingOutputStream` requires synthetic accessor"
        errorLine1="                return new FaultHidingOutputStream(outputStream);"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="731"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `completeEdit` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                completeEdit(this, false);"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="741"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `key` of class `Entry` requires synthetic accessor"
        errorLine1="                remove(entry.key); // The previous entry is stale."
        errorLine2="                             ~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="742"
            column="30"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `completeEdit` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="                completeEdit(this, true);"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="744"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `completeEdit` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="            completeEdit(this, false);"
        errorLine2="            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="753"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `hasErrors` of class `Editor` requires synthetic accessor"
        errorLine1="                    hasErrors = true;"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="766"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `hasErrors` of class `Editor` requires synthetic accessor"
        errorLine1="                    hasErrors = true;"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="775"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `hasErrors` of class `Editor` requires synthetic accessor"
        errorLine1="                    hasErrors = true;"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="784"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `hasErrors` of class `Editor` requires synthetic accessor"
        errorLine1="                    hasErrors = true;"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="793"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `valueCount` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="            this.lengths = new long[valueCount];"
        errorLine2="                                    ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="824"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `valueCount` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="            if (strings.length != valueCount) {"
        errorLine2="                                  ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="839"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `directory` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="            return new File(directory, key + &quot;.&quot; + i);"
        errorLine2="                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="857"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `directory` of class `DiskLruCache` requires synthetic accessor"
        errorLine1="            return new File(directory, key + &quot;.&quot; + i + &quot;.tmp&quot;);"
        errorLine2="                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="861"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `updateVisualizerColor` of class `HomeActivity` requires synthetic accessor"
        errorLine1="                    updateVisualizerColor(bmc != null"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="235"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `updateStatusBarColor` of class `HomeActivity` requires synthetic accessor"
        errorLine1="                    updateStatusBarColor(bmc != null"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="237"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `initDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                initDiskCache(context);"
        errorLine2="                ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="139"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mLruCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                    mLruCache.trimToSize(mLruCache.size() / 2);"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="191"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mLruCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                    mLruCache.trimToSize(mLruCache.size() / 2);"
        errorLine2="                                         ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="191"
            column="42"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                if (mDiskCache != null) {"
        errorLine2="                    ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="475"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                        if (!mDiskCache.isClosed()) {"
        errorLine2="                             ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="477"
            column="30"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                            mDiskCache.flush();"
        errorLine2="                            ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="478"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `TAG` of class `ImageCache` requires synthetic accessor"
        errorLine1="                        Log.e(TAG, &quot;flush&quot;, e);"
        errorLine2="                              ~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="481"
            column="31"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                    if (mDiskCache != null) {"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="499"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                        mDiskCache.delete();"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="500"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                        mDiskCache = null;"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="501"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `TAG` of class `ImageCache` requires synthetic accessor"
        errorLine1="                    Log.e(TAG, &quot;clearCaches&quot;, e);"
        errorLine2="                          ~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="504"
            column="27"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                if (mDiskCache != null) {"
        errorLine2="                    ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="523"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                        if (!mDiskCache.isClosed()) {"
        errorLine2="                             ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="525"
            column="30"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                            mDiskCache.close();"
        errorLine2="                            ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="526"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDiskCache` of class `ImageCache` requires synthetic accessor"
        errorLine1="                            mDiskCache = null;"
        errorLine2="                            ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="527"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `TAG` of class `ImageCache` requires synthetic accessor"
        errorLine1="                        Log.e(TAG, &quot;close&quot;, e);"
        errorLine2="                              ~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="530"
            column="31"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `CHINESE_LANGUAGE` of class `LocaleSet` requires synthetic accessor"
        errorLine1="            return CHINESE_LANGUAGE.equals(language) ||"
        errorLine2="                   ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="37"
            column="20"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `JAPANESE_LANGUAGE` of class `LocaleSet` requires synthetic accessor"
        errorLine1="                    JAPANESE_LANGUAGE.equals(language) ||"
        errorLine2="                    ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="38"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `KOREAN_LANGUAGE` of class `LocaleSet` requires synthetic accessor"
        errorLine1="                    KOREAN_LANGUAGE.equals(language);"
        errorLine2="                    ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="39"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mLocaleSetManager` of class `LocalizedStore` requires synthetic accessor"
        errorLine1="                if (msg.what == LOCALE_CHANGED &amp;&amp; mLocaleSetManager.localeSetNeedsUpdate()) {"
        errorLine2="                                                  ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="98"
            column="51"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mLocaleSetManager` of class `LocalizedStore` requires synthetic accessor"
        errorLine1="                    rebuildLocaleData(mLocaleSetManager.getSystemLocaleSet());"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="99"
            column="39"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `rebuildLocaleData` of class `LocalizedStore` requires synthetic accessor"
        errorLine1="                    rebuildLocaleData(mLocaleSetManager.getSystemLocaleSet());"
        errorLine2="                    ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="99"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` member of class `SortData` requires synthetic accessor"
        errorLine1="        SortData sortData = new SortData();"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="347"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `createOrderBy` of class `LocalizedStore` requires synthetic accessor"
        errorLine1="            return createOrderBy(NAME_BUCKET, NAME, descending);"
        errorLine2="                   ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="561"
            column="20"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `createOrderBy` of class `LocalizedStore` requires synthetic accessor"
        errorLine1="            return createOrderBy(NAME_BUCKET, NAME, descending);"
        errorLine2="                   ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="589"
            column="20"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `createOrderBy` of class `LocalizedStore` requires synthetic accessor"
        errorLine1="            return createOrderBy(NAME_BUCKET, NAME, descending);"
        errorLine2="                   ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="615"
            column="20"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `refreshCurrentTimeText` of class `MainPlaybackControls` requires synthetic accessor"
        errorLine1="                    refreshCurrentTimeText(progress);"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/MainPlaybackControls.java"
            line="77"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `ServiceStub` requires synthetic accessor"
        errorLine1="    private final IBinder mBinder = new ServiceStub(this);"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="387"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `releaseServiceUiAndStop` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                releaseServiceUiAndStop();"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="728"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `handleHeadsetHookClick` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                            handleHeadsetHookClick(ke.getEventTime());"
        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="742"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `saveQueue` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        saveQueue(true);"
        errorLine2="                        ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="975"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mQueueIsSaveable` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        mQueueIsSaveable = false;"
        errorLine2="                        ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="976"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mMediaMountedCount` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        mMediaMountedCount++;"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="979"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mCardId` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        mCardId = getCardId();"
        errorLine2="                        ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="980"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `getCardId` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        mCardId = getCardId();"
        errorLine2="                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="980"
            column="35"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `reloadQueue` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        reloadQueue();"
        errorLine2="                        ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="981"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mQueueIsSaveable` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        mQueueIsSaveable = true;"
        errorLine2="                        ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="982"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `notifyChange` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        notifyChange(QUEUE_CHANGED);"
        errorLine2="                        ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="983"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `notifyChange` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        notifyChange(META_CHANGED);"
        errorLine2="                        ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="984"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mCurrentVolume` of class `MusicPlayerHandler` requires synthetic accessor"
        errorLine1="                    mPlayerHandler.mCurrentVolume = 0f;"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2523"
            column="36"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAppWidgetSmall` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                mAppWidgetSmall.performUpdate(MusicPlaybackService.this, small);"
        errorLine2="                ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2925"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAppWidgetLarge` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                mAppWidgetLarge.performUpdate(MusicPlaybackService.this, large);"
        errorLine2="                ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2928"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAppWidgetLargeAlternate` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                mAppWidgetLargeAlternate.performUpdate(MusicPlaybackService.this, largeAlt);"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2932"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `handleCommandIntent` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                handleCommandIntent(intent);"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2934"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlayer` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.mPlayer.setVolume(mCurrentVolume);"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3002"
            column="33"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlayer` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.mPlayer.setVolume(mCurrentVolume);"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3011"
            column="33"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `sendErrorMessage` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                            service.sendErrorMessage(info.mTrackName);"
        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3016"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `openCurrentAndNext` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                            service.openCurrentAndNext();"
        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3022"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mNextPlayPos` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.setAndRecordPlayPos(service.mNextPlayPos);"
        errorLine2="                                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3026"
            column="61"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `setNextTrack` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.setNextTrack();"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3027"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mCursor` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        if (service.mCursor != null) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3028"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mCursor` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                            service.mCursor.close();"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3029"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mCursor` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                            service.mCursor = null;"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3030"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlayPos` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.updateCursor(service.mPlaylist.get(service.mPlayPos).mId);"
        errorLine2="                                                                           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3032"
            column="76"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlaylist` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.updateCursor(service.mPlaylist.get(service.mPlayPos).mId);"
        errorLine2="                                                     ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3032"
            column="54"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `updateCursor` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.updateCursor(service.mPlaylist.get(service.mPlayPos).mId);"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3032"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `notifyChange` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.notifyChange(META_CHANGED);"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3033"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mRepeatMode` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        if (service.mRepeatMode == REPEAT_CURRENT) {"
        errorLine2="                                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3036"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mLyrics` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.mLyrics = (String) msg.obj;"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3044"
            column="33"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `notifyChange` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.notifyChange(NEW_LYRICS);"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3045"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `togglePlayPause` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                                service.togglePlayPause();"
        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3066"
            column="33"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mHeadsetHookWakeLock` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                        service.mHeadsetHookWakeLock.release();"
        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3076"
            column="33"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mHandler` of class `MultiPlayer` requires synthetic accessor"
        errorLine1="                    mHandler.obtainMessage(LYRICS, text).sendToTarget();"
        errorLine2="                    ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3170"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSession` of class `MusicPlaybackService` requires synthetic accessor"
        errorLine1="                mSession.setQueue(items);"
        errorLine2="                ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="3722"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `ServiceToken` requires synthetic accessor"
        errorLine1="            ServiceToken token = new ServiceToken(context, binder);"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="119"
            column="34"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mBinder` of class `ServiceToken` requires synthetic accessor"
        errorLine1="        final ServiceBinder binder = token.mBinder;"
        errorLine2="                                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="133"
            column="44"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `discard` of class `ServiceToken` requires synthetic accessor"
        errorLine1="        token.discard();"
        errorLine2="        ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="137"
            column="9"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mBinder` of class `ServiceToken` requires synthetic accessor"
        errorLine1="            IElevenService service = token != null ? token.mBinder.mServiceConnection : null;"
        errorLine2="                                                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="202"
            column="60"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mServiceConnection` of class `ServiceBinder` requires synthetic accessor"
        errorLine1="            IElevenService service = token != null ? token.mBinder.mServiceConnection : null;"
        errorLine2="                                                                   ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="202"
            column="68"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` member of class `Holder` requires synthetic accessor"
        errorLine1="        final Holder mHolder = new Holder();"
        errorLine2="                               ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="73"
            column="32"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlaylistId` of class `PlaylistDetailFragment` requires synthetic accessor"
        errorLine1="                return new Playlist(mPlaylistId, getTitle(), 0);"
        errorLine2="                                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="120"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAdapter` of class `PlaylistDetailFragment` requires synthetic accessor"
        errorLine1="                return mAdapter.getItem(position);"
        errorLine2="                       ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="142"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlaylistId` of class `PlaylistDetailFragment` requires synthetic accessor"
        errorLine1="                return mPlaylistId;"
        errorLine2="                       ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="155"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `remove` of class `PlaylistDetailFragment` requires synthetic accessor"
        errorLine1="                remove(mSong);"
        errorLine2="                ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="165"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mPlaylistId` of class `PlaylistDetailFragment` requires synthetic accessor"
        errorLine1="                    MusicUtils.removeFromPlaylist(activity, mSong.mSongId, mPlaylistId);"
        errorLine2="                                                                           ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="168"
            column="76"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAdapter` of class `PlaylistFragment` requires synthetic accessor"
        errorLine1="                return mAdapter.getItem(position);"
        errorLine2="                       ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistFragment.java"
            line="94"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAdapter` of class `QueueFragment` requires synthetic accessor"
        errorLine1="                mSong = mAdapter.getItem(mSelectedPosition);"
        errorLine2="                        ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="127"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAdapter` of class `QueueFragment` requires synthetic accessor"
        errorLine1="                mReference.get().mAdapter.setCurrentlyPlayingTrack(MusicUtils.getCurrentTrack());"
        errorLine2="                                 ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="372"
            column="34"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `doRepeat` of class `RepeatingImageButton` requires synthetic accessor"
        errorLine1="            doRepeat(false);"
        errorLine2="            ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="140"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mFirstPanel` of class `SlidingPanelActivity` requires synthetic accessor"
        errorLine1="                    mFirstPanel.setSlidingEnabled(false);"
        errorLine2="                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="155"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mFirstPanel` of class `SlidingPanelActivity` requires synthetic accessor"
        errorLine1="                mFirstPanel.setSlidingEnabled(true);"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="169"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` member of class `DragHelperCallback` requires synthetic accessor"
        errorLine1="        mDragHelper = ViewDragHelper.create(this, 0.5f, new DragHelperCallback());"
        errorLine2="                                                        ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="380"
            column="57"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mIsUnableToDrag` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            if (mIsUnableToDrag) {"
        errorLine2="                ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1039"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideableView` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            return child == mSlideableView;"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1043"
            column="29"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDragHelper` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            if (mDragHelper == null ||"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1048"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDragHelper` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                    mDragHelper.getViewDragState() != ViewDragHelper.STATE_IDLE) {"
        errorLine2="                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1049"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            mSlideOffset = computeSlideOffset(mSlideableView.getTop());"
        errorLine2="            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1053"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideableView` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            mSlideOffset = computeSlideOffset(mSlideableView.getTop());"
        errorLine2="                                              ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1053"
            column="47"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computeSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            mSlideOffset = computeSlideOffset(mSlideableView.getTop());"
        errorLine2="                           ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1053"
            column="28"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            if (mSlideOffset == 1) {"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1054"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideState` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                if (mSlideState != SlideState.EXPANDED) {"
        errorLine2="                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1055"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideState` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                    mSlideState = SlideState.EXPANDED;"
        errorLine2="                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1057"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideableView` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                    dispatchOnPanelExpanded(mSlideableView);"
        errorLine2="                                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1058"
            column="45"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mSlideOffset == 0) {"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1060"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideState` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                if (mSlideState != SlideState.COLLAPSED) {"
        errorLine2="                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1061"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideState` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                    mSlideState = SlideState.COLLAPSED;"
        errorLine2="                    ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1062"
            column="21"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideableView` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                    dispatchOnPanelCollapsed(mSlideableView);"
        errorLine2="                                             ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1063"
            column="46"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mSlideOffset &lt; 0) {"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1065"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideState` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                mSlideState = SlideState.HIDDEN;"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1066"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideableView` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                mSlideableView.setVisibility(View.GONE);"
        errorLine2="                ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1067"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideableView` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                dispatchOnPanelHidden(mSlideableView);"
        errorLine2="                                      ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1068"
            column="39"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideState` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mSlideState != SlideState.ANCHORED) {"
        errorLine2="                       ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1069"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideState` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                mSlideState = SlideState.ANCHORED;"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1071"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideableView` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                dispatchOnPanelAnchored(mSlideableView);"
        errorLine2="                                        ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1072"
            column="41"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `onPanelDragged` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            onPanelDragged(top);"
        errorLine2="            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1083"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mIsSlidingUp` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            float direction = mIsSlidingUp ? -yvel : yvel;"
        errorLine2="                              ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1092"
            column="31"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(1.0f);"
        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1096"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(0.0f);"
        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1099"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= (1.f + mAnchorPoint) / 2) {"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1100"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= (1.f + mAnchorPoint) / 2) {"
        errorLine2="                                                                   ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1100"
            column="68"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= (1.f + mAnchorPoint) / 2) {"
        errorLine2="                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1100"
            column="45"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(1.0f);"
        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1102"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint == 1 &amp;&amp; mSlideOffset >= 0.5f) {"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1103"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint == 1 &amp;&amp; mSlideOffset >= 0.5f) {"
        errorLine2="                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1103"
            column="45"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(1.0f);"
        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1105"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= mAnchorPoint) {"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1106"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= mAnchorPoint) {"
        errorLine2="                                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1106"
            column="61"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= mAnchorPoint) {"
        errorLine2="                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1106"
            column="45"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(mAnchorPoint);"
        errorLine2="                                                 ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1107"
            column="50"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(mAnchorPoint);"
        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1107"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= mAnchorPoint / 2) {"
        errorLine2="                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1108"
            column="24"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= mAnchorPoint / 2) {"
        errorLine2="                                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1108"
            column="61"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideOffset` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            } else if (mAnchorPoint != 1 &amp;&amp; mSlideOffset >= mAnchorPoint / 2) {"
        errorLine2="                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1108"
            column="45"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mAnchorPoint` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(mAnchorPoint);"
        errorLine2="                                                 ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1109"
            column="50"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(mAnchorPoint);"
        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1109"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                target = computePanelTopPosition(0.0f);"
        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1112"
            column="26"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDragHelper` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            if (mDragHelper != null) {"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1115"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mDragHelper` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="                mDragHelper.settleCapturedViewAt(releasedChild.getLeft(), target);"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1116"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mSlideRange` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            return mSlideRange;"
        errorLine2="                   ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1123"
            column="20"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            final int collapsedTop = computePanelTopPosition(0.f);"
        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1128"
            column="38"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `computePanelTopPosition` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            final int expandedTop = computePanelTopPosition(1.0f);"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1129"
            column="37"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mIsSlidingUp` of class `SlidingUpPanelLayout` requires synthetic accessor"
        errorLine1="            if (mIsSlidingUp) {"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1130"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` constructor of class `SavedState` requires synthetic accessor"
        errorLine1="                        return new SavedState(in);"
        errorLine2="                               ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1189"
            column="32"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` method `onLoaded` of class `SrtManager` requires synthetic accessor"
        errorLine1="                onLoaded(this, SrtParser.getSrtEntries(f));"
        errorLine2="                ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SrtManager.java"
            line="90"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `charset` of class `StrictLineReader` requires synthetic accessor"
        errorLine1="            return new String(buf, 0, length, charset.name());"
        errorLine2="                                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/StrictLineReader.java"
            line="153"
            column="47"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mValueAnimators` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                        mValueAnimators[i].cancel();"
        errorLine2="                        ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="73"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mValueAnimators` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                        mValueAnimators[i].setFloatValues("
        errorLine2="                        ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="80"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mFFTPoints` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                                mFFTPoints[i * 4 + 1],"
        errorLine2="                                ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="81"
            column="33"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mFFTPoints` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                                mFFTPoints[3] - (dbValue * 16f));"
        errorLine2="                                ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="82"
            column="33"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mValueAnimators` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                        mValueAnimators[i].start();"
        errorLine2="                        ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="83"
            column="25"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                mVisualizer = new Visualizer(0);"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="92"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `TAG` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                Log.e(TAG, &quot;error initializing visualizer&quot;, e);"
        errorLine2="                      ~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="94"
            column="23"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="            mVisualizer.setEnabled(false);"
        errorLine2="            ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="98"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="            mVisualizer.setCaptureSize(66);"
        errorLine2="            ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="99"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizerListener` of class `VisualizerView` requires synthetic accessor"
        errorLine1="            mVisualizer.setDataCaptureListener(mVisualizerListener, Visualizer.getMaxCaptureRate(),"
        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="100"
            column="48"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="            mVisualizer.setDataCaptureListener(mVisualizerListener, Visualizer.getMaxCaptureRate(),"
        errorLine2="            ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="100"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="            mVisualizer.setEnabled(true);"
        errorLine2="            ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="102"
            column="13"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mUnlinkVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="            AsyncTask.execute(mUnlinkVisualizer);"
        errorLine2="                              ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="109"
            column="31"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="            if (mVisualizer != null) {"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="116"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                mVisualizer.setEnabled(false);"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="117"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                mVisualizer.release();"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="118"
            column="17"/>
    </issue>

    <issue
        id="SyntheticAccessor"
        message="Access to `private` field `mVisualizer` of class `VisualizerView` requires synthetic accessor"
        errorLine1="                mVisualizer = null;"
        errorLine2="                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="119"
            column="17"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Hljómplötur`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Hljómplötur&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-is/strings.xml"
            line="20"
            column="5"/>
        <location
            file="res/values-is/strings.xml"
            line="21"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `เพลง`, used in `app_name` and `page_songs`"
        errorLine1="    &lt;string name=&quot;app_name&quot;>เพลง&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="20"
            column="5"/>
        <location
            file="res/values-th/strings.xml"
            line="23"
            column="5"
            message="Duplicates value in `app_name`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `음악`, used in `app_name` and `page_songs`"
        errorLine1="    &lt;string name=&quot;app_name&quot;>음악&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="20"
            column="5"/>
        <location
            file="res/values-ko/strings.xml"
            line="23"
            column="5"
            message="Duplicates value in `app_name`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumoj`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumoj&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-eo/strings.xml"
            line="23"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Artis`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>Artis&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-in/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Nghệ sĩ`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>Nghệ sĩ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-vi/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `سەنئەتكار`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>سەنئەتكار&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-ug/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `कलाकार`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>कलाकार&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-hi/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `कलाकार`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>कलाकार&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-mr/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ศิลปิน`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>ศิลปิน&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-th/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `アーティスト`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>アーティスト&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ja/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-ja/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `演出者`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>演出者&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-zh-rTW/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `艺术家`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>艺术家&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-zh-rCN/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `아티스트`, used in `page_artists` and `sort_order_entry_artist`"
        errorLine1="    &lt;string name=&quot;page_artists&quot;>아티스트&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="21"
            column="5"/>
        <location
            file="res/values-ko/strings.xml"
            line="47"
            column="5"
            message="Duplicates value in `page_artists`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Alba`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Alba&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-cs/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-cs/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albaman`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albaman&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gd/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-gd/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Alben`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Alben&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-de/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Alben`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Alben&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-lb/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albomlar`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albomlar&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-az/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Album`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Album&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-da/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-da/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Album`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Album&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-in/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-in/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Album`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Album&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-it/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-it/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Album`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Album&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-sv/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-sv/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Album`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Album&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-vi/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-vi/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumai`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumai&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-lt/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumak`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumak&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-eu/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albume`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albume&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ro/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumer`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumer&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-nb/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumet`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumet&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-sq/strings.xml"
            line="25"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumi`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumi&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-hr/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumi`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumi&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-lv/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumi`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumi&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-sl/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumid`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumid&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-et/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumok`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumok&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-hu/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-af/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-en-rAU/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-en-rCA/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-en-rGB/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-en-rIN/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fr/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-fr/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-fy-rNL/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-nl/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumy`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumy&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-pl/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumy`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albumy&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-sk/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albümler`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albümler&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-tr/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Casgliadau`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Casgliadau&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-cy/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Àlbums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Àlbums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ca/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Álbumes`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Álbumes&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ast-rES/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Álbumes`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Álbumes&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-es-rUS/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Álbumes`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Álbumes&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-es/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Álbums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Álbums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-gl/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Álbuns`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Álbuns&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rBR/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-pt-rBR/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Álbuns`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Álbuns&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-pt-rPT/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Άλμπουμ`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Άλμπουμ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-el/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-el/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Албуми`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Албуми&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-bg/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Албуми`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Албуми&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-sr/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Альбоми`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Альбоми&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-uk/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Альбомы`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Альбомы&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-be/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Альбомы`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Альбомы&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ru/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ru/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `אלבומים`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>אלבומים&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-iw/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `آلبوم‌ها`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>آلبوم‌ها&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fa/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-fa/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ألبومات`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>ألبومات&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ar/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ئالبۇم`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>ئالبۇم&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ug/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-ug/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ئەلبوم`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>ئەلبوم&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ku/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ku/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `अल्बम्स`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>अल्बम्स&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-mr/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `एल्बम`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>एल्बम&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-hi/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-hi/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `এলবামসমূহ`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>এলবামসমূহ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-as/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `આલબ્મ્સ`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>આલબ્મ્સ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-gu/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ଆଲବମଗୁଡିକ`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>ଆଲବମଗୁଡିକ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-or/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ஆல்பங்கள்`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>ஆல்பங்கள்&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ta/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ఆల్బమ్‌లు`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>ఆల్బమ్‌లు&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-te/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ആൽബങ്ങൾ`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>ആൽബങ്ങൾ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ml/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `อัลบั้ม`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>อัลบั้ม&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-th/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-th/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `アルバム`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>アルバム&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ja/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ja/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-ja/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `专辑`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>专辑&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-zh-rCN/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-zh-rCN/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `專輯`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>專輯&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-zh-rTW/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-zh-rTW/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `앨범`, used in `header_albums`, `page_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>앨범&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="22"
            column="5"/>
        <location
            file="res/values-ko/strings.xml"
            line="26"
            column="5"
            message="Duplicates value in `page_albums`"/>
        <location
            file="res/values-ko/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albums`, used in `header_albums` and `page_albums`"
        errorLine1="    &lt;string name=&quot;page_albums&quot;>Albums&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="25"
            column="5"/>
        <location
            file="res/values/strings.xml"
            line="31"
            column="5"
            message="Duplicates value in `page_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `隨機播放`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>隨機播放&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="25"
            column="5"/>
        <location
            file="res/values-zh-rHK/strings.xml"
            line="80"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Albumi`, used in `header_albums` and `sort_order_entry_album`"
        errorLine1="    &lt;string name=&quot;header_albums&quot;>Albumi&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="26"
            column="5"/>
        <location
            file="res/values-fi/strings.xml"
            line="48"
            column="5"
            message="Duplicates value in `header_albums`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ಷಫಲ್`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>ಷಫಲ್&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="28"
            column="5"/>
        <location
            file="res/values-kn/strings.xml"
            line="87"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Acak`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Acak&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-in/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Air thuaiream`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Air thuaiream&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gd/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-gd/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Al debalu`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Al debalu&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ast-rES/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Aleatório`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Aleatório&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rBR/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-pt-rBR/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Ao chou`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Ao chou&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-gl/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Barreja`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Barreja&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ca/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Bland`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Bland&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-da/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Blanda`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Blanda&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-sv/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Cymysgu`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Cymysgu&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-cy/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Jaukt`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Jaukt&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-lv/strings.xml"
            line="86"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Juhuesitus`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Juhuesitus&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-et/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Karıştır`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Karıştır&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-tr/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Lecture aléatoire`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Lecture aléatoire&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fr/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-fr/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Losowo`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Losowo&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-pl/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Maišyti`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Maišyti&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-lt/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Mezclar`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Mezclar&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-es/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Miješaj`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Miješaj&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-hr/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Mjokselje`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Mjokselje&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-fy-rNL/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Mëschen`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Mëschen&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-lb/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Nahastu`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Nahastu&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-eu/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Náhodně`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Náhodně&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-cs/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Phát ngẫu nhiên`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Phát ngẫu nhiên&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-vi/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Prehrať náhodne`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Prehrať náhodne&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-sk/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Premešaj`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Premešaj&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-sl/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Qarışdır`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Qarışdır&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-az/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproduzir aleatoriamente`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Reproduzir aleatoriamente&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-pt-rPT/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Riproduzione casuale`, used in `accessibility_shuffle_all`, `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Riproduzione casuale&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-it/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
        <location
            file="res/values-it/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Sekoita`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Sekoita&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-fi/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Shuffle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-en-rAU/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Shuffle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-en-rCA/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Shuffle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-en-rGB/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Shuffle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-en-rIN/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Shuffle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-nb/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Skommel`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Skommel&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-af/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Zufällige Wiedergabe`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Zufällige Wiedergabe&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-de/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Τυχαία αναπαραγωγή`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Τυχαία αναπαραγωγή&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-el/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Насумично`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Насумично&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-sr/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Перамяшаць`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Перамяшаць&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-be/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Перемешать`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Перемешать&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ru/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ru/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Перемішати`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Перемішати&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-uk/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Разбъркване`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Разбъркване&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-bg/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ערבב`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>ערבב&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-iw/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `تصادفی`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>تصادفی&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fa/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-fa/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `تەرتىپسىز`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>تەرتىپسىز&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ug/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `خلْط`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>خلْط&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ar/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `शफल`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>शफल&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-mr/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `शफ़ल करें`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>शफ़ल करें&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-hi/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `সানমিহলি কৰক`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>সানমিহলি কৰক&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-as/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `પીસો`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>પીસો&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-gu/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ସଫଲ୍`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>ସଫଲ୍&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-or/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `குலை`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>குலை&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ta/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `మార్చు`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>మార్చు&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-te/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ഷഫിൾ ചെയ്യുക`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>ഷഫിൾ ചെയ്യുക&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ml/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `สลับ`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>สลับ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-th/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `シャッフル`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>シャッフル&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ja/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ja/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `隨機播放`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>隨機播放&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-zh-rTW/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `셔플`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>셔플&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="29"
            column="5"/>
        <location
            file="res/values-ko/strings.xml"
            line="88"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Acak semua`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Acak semua&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-in/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Alles mjokselje`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Alles mjokselje&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-fy-rNL/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Alles zufällig wiedergeben`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Alles zufällig wiedergeben&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-de/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Amestecă toate`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Amestecă toate&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ro/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Barreja-ho tot`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Barreja-ho tot&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ca/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Bland alle`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Bland alle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-da/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Blanda alla`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Blanda alla&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-sv/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Cymysgu\&apos;r cwbl`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Cymysgu\&apos;r cwbl&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-cy/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Hamısını qarışdır`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Hamısını qarışdır&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-az/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Jaukt visu`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Jaukt visu&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-lv/strings.xml"
            line="87"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Juhuesita kõik`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Juhuesita kõik&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-et/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Lecture aléatoire de tous les titres`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Lecture aléatoire de tous les titres&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fr/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-fr/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Maišyti viską`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Maišyti viską&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-lt/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Mezclar todas`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Mezclar todas&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-es/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Miješaj sve`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Miješaj sve&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-hr/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Na h-uile air thuaiream`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Na h-uile air thuaiream&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gd/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-gd/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Nahastu guztiak`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Nahastu guztiak&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-eu/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Phát ngẫu nhiên tất cả`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Phát ngẫu nhiên tất cả&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-vi/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Prehrať všetky náhodne`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Prehrať všetky náhodne&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-sk/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Premešaj vse`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Premešaj vse&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-sl/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproducción aleatoria`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Reproducción aleatoria&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-es-rUS/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproduzir todas aleatoriamente`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Reproduzir todas aleatoriamente&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-pt-rPT/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Sekoita kaikki`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Sekoita kaikki&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-fi/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle all`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Shuffle all&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-en-rAU/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle all`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Shuffle all&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-en-rCA/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle all`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Shuffle all&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-en-rGB/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle all`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Shuffle all&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-en-rIN/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle alle`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Shuffle alle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-nb/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Todas aleatório`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Todas aleatório&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rBR/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-pt-rBR/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Todo ao chou`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Todo ao chou&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-gl/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Too al debalu`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Too al debalu&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ast-rES/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Tümünü karıştır`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Tümünü karıştır&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-tr/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Vše náhodně`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Vše náhodně&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-cs/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Τυχαία αναπαραγωγή όλων`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Τυχαία αναπαραγωγή όλων&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-el/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Насумично све`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Насумично све&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-sr/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Перамяшаць усё`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Перамяшаць усё&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-be/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Перемешать все`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Перемешать все&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ru/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ru/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Перемішати все`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Перемішати все&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-uk/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Разбъркване на всички`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Разбъркване на всички&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-bg/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ערבב הכל`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>ערבב הכל&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-iw/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `تصادفی همه`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>تصادفی همه&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fa/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-fa/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `خلْط الكل`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>خلْط الكل&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ar/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `هه‌ڕه‌مه‌کی`, used in `accessibility_shuffle_all`, `accessibility_shuffle` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>هه‌ڕه‌مه‌کی&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ku/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ku/strings.xml"
            line="82"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
        <location
            file="res/values-ku/strings.xml"
            line="83"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ھەممىنى تەرتىپسىز چال`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>ھەممىنى تەرتىپسىز چال&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ug/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `सबको शफ़ल करें`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>सबको शफ़ल करें&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-hi/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `सर्व शफल करा`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>सर्व शफल करा&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-mr/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `আটাইবোৰ সানমিহলি কৰক`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>আটাইবোৰ সানমিহলি কৰক&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-as/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `બધાને પીસો`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>બધાને પીસો&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-gu/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>ସମସ୍ତ ସଫଲ୍ କରନ୍ତୁ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-or/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `அனைத்தையும் குலை`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>அனைத்தையும் குலை&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ta/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `అన్నీ షఫుల్ చేయి`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>అన్నీ షఫుల్ చేయి&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-te/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `എല്ലാം ഷഫിൾ ചെയ്യുക`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>എല്ലാം ഷഫിൾ ചെയ്യുക&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ml/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `สลับทั้งหมด`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>สลับทั้งหมด&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-th/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `すべてシャッフル`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>すべてシャッフル&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ja/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ja/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `모두 셔플`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>모두 셔플&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="30"
            column="5"/>
        <location
            file="res/values-ko/strings.xml"
            line="89"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle`, used in `accessibility_shuffle` and `menu_shuffle_item`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_item&quot;>Shuffle&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="36"
            column="5"/>
        <location
            file="res/values/strings.xml"
            line="108"
            column="5"
            message="Duplicates value in `menu_shuffle_item`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Shuffle all`, used in `accessibility_shuffle_all` and `menu_shuffle_all`"
        errorLine1="    &lt;string name=&quot;menu_shuffle_all&quot;>Shuffle all&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="37"
            column="5"/>
        <location
            file="res/values/strings.xml"
            line="109"
            column="5"
            message="Duplicates value in `menu_shuffle_all`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `儲存`, used in `save` and `settings_storage_category`"
        errorLine1="    &lt;string name=&quot;save&quot;>儲存&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="58"
            column="5"/>
        <location
            file="res/values-zh-rTW/strings.xml"
            line="94"
            column="5"
            message="Duplicates value in `save`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Annulla`, used in `cancel` and `clear`"
        errorLine1="    &lt;string name=&quot;cancel&quot;>Annulla&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="59"
            column="5"/>
        <location
            file="res/values-it/strings.xml"
            line="61"
            column="5"
            message="Duplicates value in `cancel`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Borrar`, used in `clear` and `context_menu_delete`"
        errorLine1="    &lt;string name=&quot;clear&quot;>Borrar&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="61"
            column="5"/>
        <location
            file="res/values-es-rUS/strings.xml"
            line="77"
            column="5"
            message="Duplicates value in `clear`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Hapus`, used in `clear` and `context_menu_delete`"
        errorLine1="    &lt;string name=&quot;clear&quot;>Hapus&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="61"
            column="5"/>
        <location
            file="res/values-in/strings.xml"
            line="77"
            column="5"
            message="Duplicates value in `clear`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Löschen`, used in `clear` and `context_menu_delete`"
        errorLine1="    &lt;string name=&quot;clear&quot;>Löschen&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="61"
            column="5"/>
        <location
            file="res/values-de/strings.xml"
            line="77"
            column="5"
            message="Duplicates value in `clear`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Xoá`, used in `clear` and `context_menu_delete`"
        errorLine1="    &lt;string name=&quot;clear&quot;>Xoá&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="61"
            column="5"/>
        <location
            file="res/values-vi/strings.xml"
            line="77"
            column="5"
            message="Duplicates value in `clear`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `播放`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>播放&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="65"
            column="5"/>
        <location
            file="res/values-zh-rHK/strings.xml"
            line="76"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `لێدان`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>لێدان&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ku/strings.xml"
            line="68"
            column="5"/>
        <location
            file="res/values-ku/strings.xml"
            line="78"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Atskaņot`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Atskaņot&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="71"
            column="5"/>
        <location
            file="res/values-lv/strings.xml"
            line="82"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ಪ್ಲೇ`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>ಪ್ಲೇ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="71"
            column="5"/>
        <location
            file="res/values-kn/strings.xml"
            line="83"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Afspelen`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Afspelen&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-nl/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Afspil`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Afspil&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-da/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Chwarae`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Chwarae&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-cy/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Cluich`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Cluich&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gd/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-gd/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Erreproduzitu`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Erreproduzitu&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-eu/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Esita`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Esita&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-et/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Lejátszás`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Lejátszás&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-hu/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Lire`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Lire&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fr/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-fr/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Odtwórz`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Odtwórz&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-pl/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Ofspillen`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Ofspillen&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-lb/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Ofspylje`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Ofspylje&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-fy-rNL/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Oynat`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Oynat&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-az/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Paleisti`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Paleisti&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-lt/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Phát`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Phát&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-vi/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Play`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Play&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-en-rAU/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Play`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Play&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-en-rCA/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Play`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Play&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-en-rGB/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Play`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Play&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-en-rIN/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Predvajaj`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Predvajaj&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-sl/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Prehrať`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Prehrať&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-sk/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Putar`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Putar&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-in/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Přehrát`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Přehrát&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-cs/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Redare`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Redare&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ro/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproducir`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Reproducir&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ast-rES/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproducir`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Reproducir&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-es-rUS/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproducir`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Reproducir&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-es/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproducir`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Reproducir&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-gl/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reprodueix`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Reprodueix&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ca/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Reproduzir`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Reproduzir&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-pt-rPT/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Riproduci`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Riproduci&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-it/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Speel`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Speel&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-af/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Spela`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Spela&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-sv/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Spill av`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Spill av&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-nb/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Sviraj`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Sviraj&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-hr/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Tocar`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Tocar&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rBR/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-pt-rBR/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Toista`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Toista&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-fi/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Wiedergeben`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Wiedergeben&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-de/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Çal`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Çal&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-tr/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Αναπαραγωγή`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Αναπαραγωγή&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-el/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Воспроизвести`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Воспроизвести&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ru/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ru/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Грати`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Грати&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-uk/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Изпълни`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Изпълни&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-bg/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Прайграць`, used in `accessibility_play`, `context_menu_play_album` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Прайграць&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-be/strings.xml"
            line="74"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
        <location
            file="res/values-be/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Пусти`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Пусти&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-sr/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `נגן`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>נגן&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-iw/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `تشغيل`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>تشغيل&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ar/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `قويۇش`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>قويۇش&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ug/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `پخش`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>پخش&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fa/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-fa/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `प्ले करा`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>प्ले करा&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-mr/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `बजाएँ`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>बजाएँ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-hi/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `চলাওঁক`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>চলাওঁক&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-as/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ચલાવો`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>ચલાવો&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-gu/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ଚଳାଅ`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>ଚଳାଅ&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-or/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `இயக்கு`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>இயக்கு&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ta/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `ప్లే చేయి`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>ప్లే చేయి&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-te/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `പ്ലേ ചെയ്യുക`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>പ്ലേ ചെയ്യുക&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ml/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `เล่น`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>เล่น&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-th/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `再生`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>再生&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ja/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ja/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `播放`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>播放&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-zh-rCN/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `播放`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>播放&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-zh-rTW/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `재생`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>재생&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="72"
            column="5"/>
        <location
            file="res/values-ko/strings.xml"
            line="84"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Siguiente`, used in `accessibility_next` and `context_menu_play_next`"
        errorLine1="    &lt;string name=&quot;context_menu_play_next&quot;>Siguiente&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="73"
            column="5"/>
        <location
            file="res/values-ast-rES/strings.xml"
            line="86"
            column="5"
            message="Duplicates value in `context_menu_play_next`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Siguiente`, used in `accessibility_next` and `context_menu_play_next`"
        errorLine1="    &lt;string name=&quot;context_menu_play_next&quot;>Siguiente&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="73"
            column="5"/>
        <location
            file="res/values-es-rUS/strings.xml"
            line="86"
            column="5"
            message="Duplicates value in `context_menu_play_next`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Siguiente`, used in `accessibility_next` and `context_menu_play_next`"
        errorLine1="    &lt;string name=&quot;context_menu_play_next&quot;>Siguiente&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="73"
            column="5"/>
        <location
            file="res/values-es/strings.xml"
            line="86"
            column="5"
            message="Duplicates value in `context_menu_play_next`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Play`, used in `accessibility_play` and `context_menu_play_selection`"
        errorLine1="    &lt;string name=&quot;context_menu_play_selection&quot;>Play&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="90"
            column="5"/>
        <location
            file="res/values/strings.xml"
            line="104"
            column="5"
            message="Duplicates value in `context_menu_play_selection`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `音乐：4 \u00d7 1`, used in `app_widget_large` and `app_widget_small`"
        errorLine1="    &lt;string name=&quot;app_widget_small&quot;>音乐：4 \u00d7 1&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="104"
            column="5"/>
        <location
            file="res/values-zh-rCN/strings.xml"
            line="105"
            column="5"
            message="Duplicates value in `app_widget_small`"/>
    </issue>

    <issue
        id="DuplicateStrings"
        message="Duplicate string value `Ez dago abestirik erreprodukzio-zerrendan`, used in `empty_playlist_main` and `empty_queue_main`"
        errorLine1="    &lt;string name=&quot;empty_playlist_main&quot;>Ez dago abestirik erreprodukzio-zerrendan&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="109"
            column="5"/>
        <location
            file="res/values-eu/strings.xml"
            line="117"
            column="5"
            message="Duplicates value in `empty_playlist_main`"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekundoj&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="31"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutoj&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="32"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segundos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="32"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutoj&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="33"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="33"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutoj&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="34"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="34"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutoj&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="35"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="35"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutoj&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="36"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="36"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutoj&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="37"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutos&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="37"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutoj&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="38"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="38"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-sc-rIT/strings.xml"
            line="39"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 kantoj&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="40"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 kantoj&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-eo/strings.xml"
            line="41"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekonda&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="68"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuta&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="69"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuta&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="70"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuta&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="71"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuta&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="72"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuta&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="73"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuta&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="74"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuta&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="75"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 këngë&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="78"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 këngë&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-sq/strings.xml"
            line="79"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 秒&lt;/string>"
        errorLine2="                                           ~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="113"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="114"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="115"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="116"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="117"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekundes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="118"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 分鐘&lt;/string>"
        errorLine2="                                          ~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="118"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minūtes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 分鐘&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="119"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minūtes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="120"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 分鐘&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="120"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 ಸೆಕೆಂಡ್‍ಗಳು&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="121"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minūtes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="121"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekondes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 ছেকেণ্ড&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segundos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 секундаў&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekunder&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segundos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segundos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segundo&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 સેકન્ડો&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekundi&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 detik&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 ನಿಮಿಷಗಳು&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="122"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30-60 Sekonnen&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sek.&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minūtes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="122"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 സെക്കൻഡ്&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 सेकंद&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekunder&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 seconden&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 ସେକେଣ୍ଡ&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekund&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 секунди&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekunder&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30-60 வினாடிகள்&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 సెకనులు&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30-60 سىكونتقىچە&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 секунд&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 giây&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="122"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 ثانية&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 মিনিট&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 saniyə&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 хвіліны&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 секунди&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segons&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekund&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 δευτερόλεπτα&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 seconds&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 seconds&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 seconds&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 seconds&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekundit&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutu&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekuntia&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekonden&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segundos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 મિનિટ&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 मिनट&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 másodperc&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 menit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 secondi&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 ನಿಮಿಷಗಳು&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30-60초&lt;/string>"
        errorLine2="                                           ~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1-2 Minutten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 min.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minūtes&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="123"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 മിനിറ്റ്&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 मिनिटे&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 ମିନିଟ୍‍&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 segundos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 de secunde&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekúnd&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 sekund&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 минута&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 நிமிடங்கள்&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 నిమిషాలు&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 วินาที&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 saniye&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1-2 مىنۇتقىچە&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 хвилини&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 phút&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="123"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30-60 秒&lt;/string>"
        errorLine2="                                           ~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 首歌曲&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="123"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 秒&lt;/string>"
        errorLine2="                                           ~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 دقيقة&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 মিনিট&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 dəqiqə&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 хвіліны&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 минути&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuts&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 munud&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 λεπτά&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutu&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuuttia&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 મિનિટ&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 मिनट&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 perc&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 menit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minuti&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 ನಿಮಿಷಗಳು&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1-2분&lt;/string>"
        errorLine2="                                         ~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2-3 Minutten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 min.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minūtes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="124"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 മിനിറ്റ്&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 मिनिटे&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 ମିନିଟ୍‍&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minut&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minúty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minut&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 минута&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 நிமிடங்கள்&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 నిమిషాలు&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 นาที&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 dakika&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2-3 مىنۇتقىچە&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 хвилини&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 phút&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1-2 分钟&lt;/string>"
        errorLine2="                                         ~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 首歌曲&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-zh-rHK/strings.xml"
            line="124"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="124"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 دقائق&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 মিনিট&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 dəqiqə&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 хвіліны&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 минути&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuts&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 munud&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 λεπτά&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutu&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuuttia&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 મિનિટ&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 मिनट&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 perc&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 menit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minuti&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 ನಿಮಿಷಗಳು&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2-3분&lt;/string>"
        errorLine2="                                         ~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3-4 Minutten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 min.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minūtes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="125"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 മിനിറ്റ്&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 मिनिटे&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 ମିନିଟ୍‍&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minúty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 минута&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 நிமிடங்கள்&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 నిమిషాలు&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 นาที&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 dakika&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3-4 مىنۇتقىچە&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 хвилини&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 phút&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2-3 分钟&lt;/string>"
        errorLine2="                                         ~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="125"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 دقائق&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 মিনিট&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 dəqiqə&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 хвілін&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 минути&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuts&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 λεπτά&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutu&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuuttia&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 મિનિટ&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 मिनट&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuta&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 perc&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 menit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minuti&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 ನಿಮಿಷಗಳು&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="126"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3-4분&lt;/string>"
        errorLine2="                                         ~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4-5 Minutten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 min.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 മിനിറ്റ്&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 मिनिटे&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 ମିନିଟ୍‍&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minut&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minúty&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 минута&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuter&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 நிமிடங்கள்&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 నిమిషాలు&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 นาที&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 dakika&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4-5 مىنۇتقىچە&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 хвилин&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 phút&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3-4 分钟&lt;/string>"
        errorLine2="                                         ~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="126"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minute&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 دقائق&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 মিনিট&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutos&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 dəqiqə&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 хвілін&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 минути&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuts&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minut&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutter&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 λεπτά&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutos&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutos&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutit&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutu&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuuttia&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuten&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 મિનિટ&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 मिनट&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuta&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 perc&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 menit&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minuti&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 ನಿಮಿಷಗಳು&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="127"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4-5분&lt;/string>"
        errorLine2="                                         ~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5-10 Minutten&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 min.&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 മിനിറ്റ്&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 मिनिटे&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutter&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuten&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 ମିନିଟ୍‍&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minut&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutos&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minute&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minút&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minut&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 минута&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuter&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 நிமிடங்கள்&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 నిమిషాలు&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 นาที&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 dakika&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5-10 مىنۇتقىچە&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 хвилин&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 phút&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="127"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4-5 分钟&lt;/string>"
        errorLine2="                                         ~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 分鐘&lt;/string>"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="127"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minute&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 دقائق&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 মিনিট&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 dəqiqə&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 хвілін&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 минути&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuts&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minut&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutter&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 λεπτά&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutes&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutes&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutes&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutes&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutit&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutu&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuuttia&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuten&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutos&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 મિનિટ&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 मिनट&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuta&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 perc&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 menit&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minuti&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 ನಿಮಿಷಗಳು&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5-10분&lt;/string>"
        errorLine2="                                          ~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10-30 Minutten&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 min.&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 dziesmas&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="128"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 മിനിറ്റ്&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 मिनिटे&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutter&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuten&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 ମିନିଟ୍‍&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minut&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutos&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minute&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minút&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minut&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 минута&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuter&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 நிமிடங்கள்&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 నిమిషాలు&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 นาที&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 dakika&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10-30 مىنۇتقىچە&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 хвилин&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 phút&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5-10 分钟&lt;/string>"
        errorLine2="                                          ~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 分鐘&lt;/string>"
        errorLine2="                                          ~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="128"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minute&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 دقيقة&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 মিনিট&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 dəqiqə&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 хвілін&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 минути&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuts&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minut&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 munud&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutter&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 λεπτά&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutit&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutu&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuuttia&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuten&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 મિનિટ&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 मिनट&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuta&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 perc&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 menit&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minuti&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10-30분&lt;/string>"
        errorLine2="                                           ~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30-60 Minutten&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 min.&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 dziesmas&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="129"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 മിനിറ്റ്&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 मिनिटे&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutter&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuten&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 ମିନିଟ୍‍&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minut&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 de minute&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minút&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minut&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 минута&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuter&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 நிமிடங்கள்&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 నిమిషాలు&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 นาที&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 dakika&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30-60 مىنۇتقىچە&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 хвилин&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 phút&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10-30 分钟&lt;/string>"
        errorLine2="                                           ~~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 分鐘&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="129"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 دقيقة&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 dəqiqə&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 минути&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuts&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minut&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 λεπτά&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutit&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuuttia&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuten&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 perc&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minuti&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30-60분&lt;/string>"
        errorLine2="                                           ~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutos&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 de minute&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minút&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minut&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 นาที&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 dakika&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30-60 分钟&lt;/string>"
        errorLine2="                                           ~~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 分鐘&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="130"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 ಹಾಡುಗಳು&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="131"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 liedjies&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 টা গীত&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 canciones&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 трэка&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 sange&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 canciones&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 canciones&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 abesti&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 ગીતો&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 गाने&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 pjesme&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 lagu&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 ಹಾಡುಗಳು&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2-4 Lidder&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 dainos&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 ഗാനങ്ങൾ&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 गाणी&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 sanger&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 nummers&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 ଗୀତ&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 piosenek&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 песме&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 låtar&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 பாடல்கள்&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 పాటలు&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2-4 نەغمە ناخشا&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 пісні&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 bài hát&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="132"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 liedjies&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2-4 أغاني&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 টা গীত&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 canciones&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ast-rES/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 mahnı&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 трэкаў&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 песни&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 cançons&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 skladby&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 cân&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 sange&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 τραγούδια&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 canciones&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es-rUS/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 canciones&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-es/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 laulu&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 abesti&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 kappaletta&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 nûmers&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 cancións&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 ગીતો&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5- 9 गाने&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 pjesama&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 dal&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 lagu&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 canzoni&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2-4곡의 음악&lt;/string>"
        errorLine2="                                       ~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5-9 Lidder&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 dainos&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-lt/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 ഗാനങ്ങൾ&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 गाणी&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 sanger&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 nummers&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 ଗୀତ&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 piosenek&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 músicas&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 melodii&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 skladby&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 skladbe&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 песама&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 låtar&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 பாடல்கள்&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 పాటలు&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 เพลง&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 şarkı&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5-9 نەغمە ناخشا&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 пісень&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 bài hát&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2-4 首歌曲&lt;/string>"
        errorLine2="                                       ~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 首樂曲&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="133"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5-9 أغاني&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 mahnı&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 песни&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 cançons&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 skladeb&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-cs/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 τραγούδια&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 laulu&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 kappaletta&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 nûmers&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-fy-rNL/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 cancións&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 dal&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 canzoni&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5-9곡의 음악&lt;/string>"
        errorLine2="                                       ~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 músicas&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 melodii&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 skladieb&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 skladb&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="res/values-sl/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 เพลง&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 şarkı&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5-9 首歌曲&lt;/string>"
        errorLine2="                                       ~~~~~~~">
        <location
            file="res/values-zh-rCN/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 首樂曲&lt;/string>"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="res/values-zh-rTW/strings.xml"
            line="134"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_seconds&quot;>30 - 60 seconds&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="153"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_1_to_2_minutes&quot;>1 - 2 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="154"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_3_minutes&quot;>2 - 3 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="155"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_3_to_4_minutes&quot;>3 - 4 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="156"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_4_to_5_minutes&quot;>4 - 5 minutes&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="157"
            column="42"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_10_minutes&quot;>5 - 10 minutes&lt;/string>"
        errorLine2="                                          ~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="158"
            column="43"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_10_to_30_minutes&quot;>10 - 30 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="159"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_30_to_60_minutes&quot;>30 - 60 minutes&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="160"
            column="44"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_2_to_4_songs&quot;>2 - 4 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="164"
            column="40"/>
    </issue>

    <issue
        id="TypographyDashes"
        message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
        errorLine1="    &lt;string name=&quot;header_5_to_9_songs&quot;>5 - 9 songs&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="165"
            column="40"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Til að bæta lögum á þennan spilunarlista, ýttu þá á valmyndina á lagi, hljómplötu eða flytjanda og veldu \&quot;Bæta á spilunarlista\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-is/strings.xml"
            line="27"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Til að bæta lögum í spilunarbiðröðina þína, ýttu þá á valmyndina á lagi, hljómplötu eða flytjanda og veldu \&quot;Bæta í biðröð\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-is/strings.xml"
            line="28"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;menu_shuffle_recent&quot;>\&quot;VIru kuerzem ofgespillt\&quot; mëschen&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="35"
            column="40"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;menu_shuffle_last_added&quot;>\&quot;Fir d\&apos;lescht dobäigesat\&quot; mëschen&lt;/string>"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="36"
            column="44"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;clear_recent_title&quot;>לנקות רשימת \&quot;הושמעו לאחרונה\&quot;?&lt;/string>"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="66"
            column="39"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;clear_last_added&quot;>לנקות רשימת \&quot;נוספו לאחרונה\&quot;?&lt;/string>"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="67"
            column="37"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;clear_last_added&quot;>\&quot;Fir d\&apos;lescht dobäigesat\&quot; eidel maachen?&lt;/string>"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="67"
            column="37"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;context_menu_remove_from_recent&quot;>Aus \&quot;Kürzlich gehört\&quot; entfernen&lt;/string>"
        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="80"
            column="52"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;context_menu_remove_from_recent&quot;>Aus der \&quot;Viru kuerzem gelauschtert\&quot;-Lëscht läschen&lt;/string>"
        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="80"
            column="52"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;settings_show_lyrics_summary&quot;>Fir Lidder déi en \&quot;srt\&quot;-Fichier hunn&lt;/string>"
        errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="100"
            column="49"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Lai šim atskaņošanas sarakstam pievienotu dziesmas, piesitiet dziesmas, albuma vai izpildītāja izvēlnei un izvēlieties \&quot;Pievienot atskaņošanas sarakstam\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="106"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>ಪ್ಲೇಪಟ್ಟಿಗೆ ಹಾಡುಗಳನ್ನು ಸೇರಿಸಲು, ಕಲಾವಿದ, ಆಲ್ಬಂ ಅಥವ ಹಾಡಿನ  ಮೇಲಿರುವ ಆಯ್ಕೆಗಳ ಮೆನು ಸ್ಪರ್ಶಿಸಿ ಹಾಗು \&quot;ಪ್ಲೇಪಟ್ಟಿಗೆ ಸೇರಿಸಿ\&quot; ಆಯ್ಕೆಮಾಡಿ.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="109"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Om Liedjies by te voeg tot hierdie speel lys, raak die opsies kieslys op \&apos;n liedjie, album of kunstenaar en kies \&quot;Voeg by speellys\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>এই প্লে-সূচীলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \&quot;Add to playlist\&quot; চয়ন কৰক।&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Каб дадаць трэкі ў плэйліст, націсніце на меню опцый трэка, альбома ці выканаўца і выберыце \&quot;Дадаць у плэйліст\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Tryk på valgmulighedsmenuen på en sang, et album, eller en kunstner, og vælg \&quot;Føj til afspilningsliste\&quot;, for at føje sange til denne afspilningsliste.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Abestiak erreprodukzio-zerrendara gehitzeko, sakatu abesti, album edo artista baten aukeren menuan eta hautatu \&quot;Gehitu erreprodukzio-zerrendara\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>આ પ્લેલિસ્ટમાં ગીતો ઉમેરવા, ગીત, આલ્બમ અથવા આર્ટિસ્ટ પરના વિકલ્પ મેન્યૂ પર ટૅપ કરો અને \&quot;પ્લેલિસ્ટમાં ઍડ કરો\&quot; પસંદ કરો.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>इस प्लेसूची में गाने जोड़ेने के लिए, गाने, एल्बम या कलाकार के विकल्प मेनू को टैप करें और \&quot;प्लेसूची में जोड़ें\&quot; को चुनें।&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Za dodavanje pjesme u playlistu dodirnite opcije pjesme,albuma ili autora i odaberite \&quot;Dodaj u playlistu\&quot;&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Untuk menambahkan lagu ke daftar putar ini, tekan menu pilihan pada lagu, album atau artis dan pilih \&quot;Tambahkan ke daftar putar\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>כדי להוסיף שירים לרשימת ההשמעה הזו, הקש על תפריט האפשרויות של שיר, אלבום או אמן ובחר \&quot;הוסף לרשימת השמעה\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Fir Lidder an dës Ofspilllëscht ze setzen, dréck den Optiounsmenü op engem Lidd, Album oder Interpret, a wiel \&quot;An d\&apos;Ofspilllëscht setzen\&quot; aus.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>ഈ പ്ലേ ലിസ്റ്റിലേക്ക്  ഗാനങ്ങള്‍ ചേര്‍ക്കാന്‍, ഒരു ഗാനം, ആൽബം അല്ലെങ്കിൽ ആർട്ടിസ്റ്റിന്റെ ഐച്ഛികങ്ങള്‍ മെനുവില്‍ അമര്‍ത്തി \&quot;പ്ലേ ലിസ്റ്റില്‍ ചേര്‍ക്കുക\&quot; തിരഞ്ഞെടുക്കുക.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>प्लेलिस्टमध्ये गाणी जोडण्यासाठी, गाणे, अल्बम किंवा कलाकारावरील पर्याय मेनू टॅप करा आणि \&quot;प्लेलिस्टमध्ये जोडा\&quot; निवडा.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>For å legge til sanger i denne spillelisten, trykk på Alternativer-menyen på en sang, et album eller en artist og velg \&quot;Legg til i spilleliste\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>ଏହି ଚାଳନତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \&quot;ଚାଳନତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\&quot;ରେ ଚୟନ କରନ୍ତୁ।&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Aby dodawać utwory do playlisty, użyj przycisku opcji na utworze, albumie lub artyście i wybierz \&quot;Dodaj do playlisty\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Да додаш песме у ову плејлисту, додирни опциони мени песме, албума или уметника и одабери \&quot;Додај у плејлисту\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>För att lägga till sånger till denna spellista, tryck på alternativmenyn på en låt, album eller artist och välj \&quot;Lägg till i spellista\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>இந்த இசைப்பட்டியலில் பாடல்களை சேர்க்க, ஒரு பாடல், ஆல்பம் அல்லது கலைஞரில் உள்ள விருப்பங்கள் மெனுவை தட்டி \&quot;இசைப்பட்டியலில் சேர்\&quot;ஐ தேர்வுசெய்&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>ప్లేజాబితాకు పాటలను జోడించడానికి, పాట, ఆల్బమ్ లేదా కళాకారుడు పైన ఉన్నఆప్షనుల మెనూను ట్యాప్ చేయండి మరియు \&quot;ప్లేజాబితాకు జోడించుము\&quot; ఎంచుకోండి.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>تىزىملىككە ناخشا قوشۇش ئۈچۈن، تىزىملىكتىكى ناخشا، پىلاستنكا ياكى ئارتىسنى تاللاڭ، ھەمدە \&quot;تىزىملىككە ناخشا قوشۇش\&quot;نى تاللاڭ.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Щоб додати пісню у цей список відтворення, торкніться меню параметрів на композиції, альбому або виконавця та виберіть \&quot;Додати до списку відтворення\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-uk/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Để thêm bài hát vào danh sách phát này, chạm menu tuỳ chọn của bài hát, album hoặc nghệ sĩ và chọn \&quot;Thêm vào danh sách phát\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&apos;&apos;) with directional quotes (‘’, &amp;#8216; and &amp;#8217;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Om nummers toe te voegen aan deze afspeellijst, tik op het menu van een nummer, album of artiest en selecteer \&apos;Toevoegen aan afspeellijst\&apos;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="110"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>لإضافة الأغاني إلى قائمة التشغيل هذه، انقر فوق قائمة خيارات أي أغنية أو ألبوم أو الفنان وحدد \&quot;إضافة إلى قائمة التشغيل\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Bu oynatma siyahısına mahnı əlavə etmək üçün seçimlərdən \&quot;Oynatma siyahısına əlavə et\&quot;ə toxunun.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>За да добавите песни към този списък за изпълнение, натиснете менюто опции по песен, албум или изпълнител и изберете \&quot;Добави към списъка за изпълнение\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Per afegir cançons a aquesta llista de reproducció, prem al menú opcions en una cançó, àlbum o artista i selecciona \&quot;Afegeix a la llista de reproducció\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>I ychwanegu traciau at y rhestr chwarae hon, tapia dewislen opsiynau trac, casgliad neu artist a dewis \&quot;Ychwanegu i\&apos;r rhestr chwarae\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Tippen Sie im Optionsmenü auf einen Titel, Künstler oder ein Album und wählen Sie \&quot;Zur Wiedergabeliste hinzufügen\&quot;, um den jeweiligen Eintrag zu dieser Liste hinzuzufügen.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Για να προσθέσετε τραγούδια σε αυτήν τη λίστα αναπαραγωγής, ανοίξτε το μενού επιλογών σε ένα τραγούδι, άλμπουμ ή καλλιτέχνη και επιλέξτε \&quot;Προσθήκη στη λίστα αναπαραγωγής\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>To add songs to this playlist, tap the options menu on a song, album or artist and select \&quot;Add to playlist\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>To add songs to this playlist, tap the options menu on a song, album or artist and select \&quot;Add to playlist\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>To add songs to this playlist, tap the options menu on a song, album or artist and select \&quot;Add to playlist\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>To add songs to this playlist, tap the options menu on a song, album or artist and select \&quot;Add to playlist\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Lugude lisamiseks käesolevasse esitlusnimekirja, koputa laulu, albumi või artisti lisavalikute menüül ja vali \&quot;Lisa esitlusloendisse\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Lisätäksesi kappaleita soittolistaan, avaa valikko kappaleen, albumin tai esittäjän kohdalla ja valitse \&quot;Lisää soittolistaan\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Zeneszámok hozzáadása a lejátszási listához, koppintson a beállítások menü, dal, album vagy előadó lehetőségre, és válassza a \&quot;Hozzáadás a lejátszási listához\&quot; lehetőséget.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Per aggiungere canzoni a questa playlist tocca il menu opzioni su una canzone, album o artista e seleziona \&quot;Aggiungi alla playlist\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>재생목록에 음악를 추가하려면 음악, 앨범, 또는 아티스트의 옵션 메뉴를 탭하여 연 뒤 \&quot;재생목록에 추가\&quot;를 선택하십시오.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Para adicionar músicas a esta lista de reprodução, toque no menu de opções de uma música, álbum ou artista e selecione \&quot;Adicionar à lista de reprodução\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rBR/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Para adicionar músicas a esta lista de reprodução, toque no menu de opções numa música, álbum ou artista e selecione \&quot;Adicionar à lista de reprodução\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Pentru a adăuga melodii la această listă de redare, atingeți meniul de opțiuni pe un cântec, album sau artist și selectați \&quot;Adăugați la lista de redare\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Pre pridanie skladieb do zoznamu skladieb kliknite na ponuku s možnosťami na skladbe, albume alebo interpretovi a vyberte \&quot;Pridať do zoznamu skladieb\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>ในการเพิ่มเพลงไปยังรายการที่จะเล่น ให้แตะเมนูตัวเลือกบนเพลง อัลบั้มหรือศิลปินแล้วเลือก \&quot;เพิ่มไปยังรายการเพลง\&quot;&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>Bu çalma listesine şarkı eklemek için, seçeneklerden \&quot;Çalma listesine ekle\&quot;yi tıklayın.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="111"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Lai pievienotu dziesmas atskaņošanas rindai, piesitiet dziesmas, albuma vai izpildītāja izvēlnei un izvēlieties \&quot;Pievienot rindai\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lv/strings.xml"
            line="114"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>ಪ್ಲೇ ಸರದಿಗೆ ಹಾಡುಗಳನ್ನು ಸೇರಿಸಲು, ಕಲಾವಿದ, ಆಲ್ಬಂ ಅಥವ ಹಾಡಿನ ಮೇಲಿರುವ ಆಯ್ಕೆಗಳ ಮೆನು ಸ್ಪರ್ಶಿಸಿ ಹಾಗು \&quot;ಸರದಿಗೆ ಸೇರಿಸಿ\&quot; ಆಯ್ಕೆಮಾಡಿ.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-kn/strings.xml"
            line="117"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Om Liedjies by te voeg tot jou speel waglys, raak die opsies kieslys op \&apos;n liedjie, album of kunstenaar en kies \&quot;Voeg by waglys\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-af/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>আপোনাৰ এই প্লে কিউলৈ গীত যোগ কৰিবলৈ, এটা গীত, এলবাম বা শিল্পীৰ ওপৰত বিকল্প মেনু টেপ কৰক আৰু \&quot;Add to queue\&quot; চয়ন কৰক।&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-as/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Каб дадаць трэкі ў чаргу прайгравання, націсніце на меню опцый трэка, альбома ці выканаўца і выберыце \&quot;Дадаць у чаргу\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-be/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Tryk på valgmulighedsmenuen, på en sang, et album, eller en kunstner, og vælg \&quot;Føj til kø\&quot;, for at føje sange til din Afspilningskø.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-da/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Abestiak erreprodukzio-zerrendara gehitzeko, sakatu abesti, album edo artista bat eta hautatu \&quot;Gehitu ilarara\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-eu/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>તમારી પ્લે હરોળમાં ગીતો ઉમેરવા, ગીત, આલ્બમ અથવા આર્ટિસ્ટ પરના વિકલ્પ મેન્યૂ પર ટૅપ કરો અને \&quot;હરોળમાં ઍડ કરો\&quot; પસંદ કરો.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gu/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>अपनी प्ले कतार में गाने जोड़ने के लिए, किसी गाने, एल्बम, या कलाकार के विकल्प मेनू को टैप करें और \&quot;कतार में जोड़ें\&quot; को चुनें।&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hi/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Za dodavanje pjesmi u red za reprodukciju, dodirnite opcije pjesme,albuma ili autora i odaberite \&quot;Dodaj u red\&quot;&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hr/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Untuk menambahkan lagu ke Antrean Putar Anda, tekan menu pilihan pada lagu, album, atau artis dan pilih \&quot;Tambahkan ke antrean\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-in/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>כדי להוסיף שירים לתור ההשמעה שלך, הקש על תפריט האפשרויות של שיר, אלבום או אמן ובחר \&quot;הוסף לתור\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-iw/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Fir Lidder an d\&apos;Waardeschlaang ze setzen, dréck den Optiounsmenü bei engem Lidd, Album oder Interpret, a wiel \&quot;An d\&apos;Waardeschlaang setzen\&quot; aus.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-lb/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>ഈ പ്ലേ ക്യൂവില്‍ ഗാനങ്ങള്‍ ചേർക്കാൻ, ഒരു ഗാനം, ആൽബം അല്ലെങ്കിൽ ആർട്ടിസ്റ്റിന്റെ ഐച്ഛികങ്ങള്‍ മെനുവില്‍ അമര്‍ത്തി &quot;ക്യൂവില്‍ ചേര്‍ക്കുക\&quot; തിരഞ്ഞെടുക്കുക.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ml/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>प्ले रांगेमध्ये गाणी जोडण्यासाठी, गाणे, अल्बम किंवा कलाकारावरील पर्याय मेनू टॅप करा आणि \&quot;प्ले रांगेमध्ये जोडा\&quot; निवडा.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-mr/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>For å legge til sanger i spillekøen, trykk på Alternativer-menyen på en sang, et album eller en artist og velg \&quot;Legg til i kø\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nb/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>ଏହି ପ୍ଲେତାଲିକାରେ ଗୀତ ଯୋଗ କରିବା ପାଇଁ, ଗୀତ, ଆଲ୍‍ବମ୍‍ ବା କଳାକାରରେ ଥିବା ବିକଳ୍ପ ମେନ୍ୟୁରେ ଟ୍ୟାପ୍‍ କରନ୍ତୁ ଓ \&quot;ପ୍ଲେତାଲିକାରେ ଯୋଗ କରନ୍ତୁ\&quot;ରେ ଚୟନ କରନ୍ତୁ।&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-or/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Aby dodać utwory do Kolejki Odtwarzania, użyj przycisku opcji na utworze, albumie lub artyście i wybierz \&quot;Dodaj do kolejki\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pl/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Да додаш песме у редослед за пуштање, додирни опциони мени на песми, албуму или уметнику и изабери \&quot;Додај у редослед\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sr/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>För att lägga till sånger till din spelkö, tryck på alternativmenyn på en låt, album eller artist och välj \&quot;Lägg till i spellista\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sv/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>இந்த சாரையில் பாடல்களை சேர்க்க, ஒரு பாடல், ஆல்பம் அல்லது கலைஞரில் உள்ள விருப்பங்கள் மெனுவை தட்டி \&quot;வரிசையில் சேர்\&quot;ஐ தேர்வுசெய்.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ta/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>మీరు ప్లే నిరీక్షణ క్రమానికి పాటలను జోడించేందుకు, పాట, ఆల్బమ్ లేదా కళాకారుడు పైన ఉన్నఆప్షనుల మెనూను ట్యాప్ చేయండి మరియు \&quot;నిరీక్షణ క్రమానికి జోడించుము\&quot; ఎంచుకోండి.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-te/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>قويۇش سېپىگە ناخشا قوشۇش ئۈچۈن، تىزىملىكتىكى ناخشا، پىلاستنكا ياكى ئارتىسنى تاللاڭ، ھەمدە \&quot;سەپكە ناخشا قوشۇش\&quot;نى تاللاڭ.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ug/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Để thêm bài hát vào Danh sách chờ phát, chạm menu tuỳ chọn của bài hát, album hoặc nghệ sĩ và chọn \&quot;Thêm vào danh sách chờ\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-vi/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&apos;&apos;) with directional quotes (‘’, &amp;#8216; and &amp;#8217;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Om nummers toe te voegen aan de wachtrij, tik op het menu van een nummer, album of artiest en selecteer \&apos;Toevoegen aan wachtrij\&apos;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-nl/strings.xml"
            line="118"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>لإضافة الأغاني إلى قائمة الانتظار، انقر فوق قائمة خيارات أي أغنية أو ألبوم أو الفنان وحدد \&quot;إضافة إلى قائمة الانتظار\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ar/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Çalma Növbəsinə mahnı əlavə etmək üçün, seçimlərdən \&quot;Növbəyə əlavə et\&quot;i seçin.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-az/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>За да добавите песни към опашката за изпълнение, натиснете менюто опции по песен, албум или изпълнител и изберете \&quot;Добави към опашката за изпълнение\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-bg/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Per afegir cançons a la cua de reproducció, pica al menú opcions en una cançó, àlbum o artista i selecciona \&quot;Afegeix a la cua\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ca/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>I ychwanegu traciau i dy Giw Chwarae, tapia\&apos;r ddewislen dewisiadau ar drac, casgliad neu artist a dewis \&quot;Ychwanegu i\&apos;r ciw\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-cy/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Um Titel zur Warteschlange hinzuzufügen, wählen Sie im Optionsmenü eines Titels, Albums oder Interpreten \&quot;Zur Warteschlange hinzufügen\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Για να προσθέσετε τραγούδια στην ουρά αναπαραγωγής, ανοίξτε το μενού επιλογών σε ένα τραγούδι, άλμπουμ ή καλλιτέχνη και επιλέξτε \&quot;Προσθήκη στην ουρά\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-el/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \&quot;Add to queue\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rAU/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \&quot;Add to queue\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rCA/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \&quot;Add to queue\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rGB/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \&quot;Add to queue\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-en-rIN/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Lugude lisamiseks esitlusjärjekorda, koputa laulu, albumi või artisti lisavalikute menüül ja vali \&quot;Lisa järjekorda\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-et/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Lisätäksesi kappaleita jonoon, avaa valikko kappaleen, albumin tai esittäjän kohdalla ja valitse \&quot;Lisää jonoon\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Para engadir cancións á súa lista de espere, toque o menú de opcións dunha canción, álbum ou artista e seleccione \&quot;Engadir á lista de espera\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-gl/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Zeneszámok hozzáadása a lejátszási sorhoz, koppintson a beállítások menü, dal, album vagy előadó lehetőségre, és válassza a \&quot;Hozzáadás a lejátszólistához\&quot; opciót.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-hu/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Per aggiungere canzoni alla tua coda di riproduzione, tocca il menu di opzioni su una canzone, un album o un artista e seleziona \&quot;Aggiungi alla coda\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-it/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>노래를 재생 대기열에 추가하려면 노래, 앨범, 또는 아티스트의 옵션 메뉴를 탭하여 연 뒤 \&quot;대기열에 추가\&quot;를 선택하십시오.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ko/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Para adicionar músicas à sua fila de reprodução, toque no menu de opções de uma música, álbum ou artista e selecione \&quot;Adicionar à fila\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rBR/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Para adicionar músicas à sua fila de reprodução, toque no menu de opções numa música, álbum ou artista e selecione \&quot;Adicionar à fila\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-pt-rPT/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Pentru a adăuga melodii în coada de redare, atingeți meniul de opțiuni pe un cântec, album sau artist și selectați \&quot;Adăugați la coadă\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-ro/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Pre pridanie skladieb do poradia na prehrávanie kliknite na ponuku s možnosťami na skladbe, albume alebo interpretovi a vyberte \&quot;Pridať do poradia\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-sk/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>ในการเพิ่มเพลงไปยังรายการที่เล่น ให้แตะเมนูตัวเลือกบนเพลงหรือศิลปินและเลือก \&quot;เพิ่มไปยังคิวเล่น\&quot;&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-th/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>Çalma Kuyruğuna şarkı eklemek için şarkı, albüm veya sanatçı üzerindeki seçenekler menüsüne tıklayın ve \&quot;Kuyruğa ekle\&quot;yi seçin.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-tr/strings.xml"
            line="119"
            column="42"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;error_playing_track&quot;>Der Titel \&quot;%1$s\&quot; konnte nicht abgespielt werden.&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-de/strings.xml"
            line="120"
            column="40"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;error_playing_track&quot;>Ei voi toistaa kappaletta \&quot;%1$s\&quot;&lt;/string>"
        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values-fi/strings.xml"
            line="120"
            column="40"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_playlist_secondary&quot;>To add songs to this playlist, tap the options menu on a song, album or artist and select \&quot;Add to playlist\&quot;.&lt;/string>"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="139"
            column="45"/>
    </issue>

    <issue
        id="TypographyQuotes"
        message="Replace straight quotes (&quot;) with directional quotes (“”, &amp;#8220; and &amp;#8221;) ?"
        errorLine1="    &lt;string name=&quot;empty_queue_secondary&quot;>To add songs to your Play Queue, tap the options menu on a song, album, or artist and select \&quot;Add to queue\&quot;.&lt;/string>"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/values/strings.xml"
            line="147"
            column="42"/>
    </issue>

    <issue
        id="ConvertToWebp"
        message="One or more images in this project can be converted to the WebP format which typically results in smaller file sizes, even for lossless conversion">
        <location
            file="res/mipmap-xxxhdpi/ic_foreground.png"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/activity_album_detail.xml"
            line="30"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/activity_album_detail.xml"
            line="40"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/activity_album_detail.xml"
            line="73"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/activity_audio_preview.xml"
            line="80"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/activity_audio_preview.xml"
            line="92"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/album_detail_song.xml"
            line="36"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/album_detail_song.xml"
            line="42"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_large.xml"
            line="87"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_large.xml"
            line="94"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_large.xml"
            line="100"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_large_alternate.xml"
            line="47"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_large_alternate.xml"
            line="54"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_large_alternate.xml"
            line="60"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_small.xml"
            line="59"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_small.xml"
            line="66"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/app_widget_small.xml"
            line="72"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/artist_detail_album.xml"
            line="42"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="    &lt;TextView"
        errorLine2="     ~~~~~~~~">
        <location
            file="res/layout/artist_detail_song.xml"
            line="39"
            column="6"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="    &lt;TextView"
        errorLine2="     ~~~~~~~~">
        <location
            file="res/layout/artist_detail_song.xml"
            line="49"
            column="6"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/audio_player_header_bar.xml"
            line="37"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/audio_player_header_bar.xml"
            line="49"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/bottom_action_bar.xml"
            line="45"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/bottom_action_bar.xml"
            line="49"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="                &lt;TextView"
        errorLine2="                 ~~~~~~~~">
        <location
            file="res/layout/grid_items_normal.xml"
            line="51"
            column="18"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="                &lt;TextView"
        errorLine2="                 ~~~~~~~~">
        <location
            file="res/layout/grid_items_normal.xml"
            line="59"
            column="18"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="    &lt;TextView"
        errorLine2="     ~~~~~~~~">
        <location
            file="res/layout/header_bar.xml"
            line="39"
            column="6"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="&lt;TextView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
        errorLine2=" ~~~~~~~~">
        <location
            file="res/layout/list_header.xml"
            line="18"
            column="2"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/list_item_common.xml"
            line="36"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/list_item_common.xml"
            line="42"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="    &lt;TextView"
        errorLine2="     ~~~~~~~~">
        <location
            file="res/layout/list_item_common.xml"
            line="49"
            column="6"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/list_item_queue.xml"
            line="44"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/list_item_queue.xml"
            line="51"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/list_item_top_tracks.xml"
            line="45"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/list_item_top_tracks.xml"
            line="65"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="            &lt;TextView"
        errorLine2="             ~~~~~~~~">
        <location
            file="res/layout/list_item_top_tracks.xml"
            line="71"
            column="14"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="    &lt;TextView"
        errorLine2="     ~~~~~~~~">
        <location
            file="res/layout/main_album_flow.xml"
            line="43"
            column="6"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="    &lt;TextView"
        errorLine2="     ~~~~~~~~">
        <location
            file="res/layout/main_playback_controls.xml"
            line="27"
            column="6"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="    &lt;TextView"
        errorLine2="     ~~~~~~~~">
        <location
            file="res/layout/main_playback_controls.xml"
            line="57"
            column="6"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/playlist_detail_header.xml"
            line="39"
            column="10"/>
    </issue>

    <issue
        id="SelectableText"
        message="Consider making the text value selectable by specifying `android:textIsSelectable=&quot;true&quot;`"
        errorLine1="        &lt;TextView"
        errorLine2="         ~~~~~~~~">
        <location
            file="res/layout/playlist_detail_header.xml"
            line="49"
            column="10"/>
    </issue>

    <issue
        id="NegativeMargin"
        message="Margin values should not be negative"
        errorLine1="        android:layout_marginTop=&quot;-2dp&quot; />"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/artist_detail_song.xml"
            line="57"
            column="9"/>
    </issue>

    <issue
        id="ClickableViewAccessibility"
        message="`AudioPreviewActivity#onTouch` should call `View#performClick` when a click is detected"
        errorLine1="    public boolean onTouch(View v, MotionEvent event) {"
        errorLine2="                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="527"
            column="20"/>
    </issue>

    <issue
        id="ClickableViewAccessibility"
        message="`onTouch` lambda should call `View#performClick` when a click is detected"
        errorLine1="        mRootView.setOnTouchListener((v, me) -> true);"
        errorLine2="                                     ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="77"
            column="38"/>
    </issue>

    <issue
        id="ClickableViewAccessibility"
        message="Custom view `RepeatingImageButton` overrides `onTouchEvent` but not `performClick`"
        errorLine1="    public boolean onTouchEvent(final MotionEvent event) {"
        errorLine2="                   ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="95"
            column="20"/>
    </issue>

    <issue
        id="ClickableViewAccessibility"
        message="Custom view `SlidingUpPanelLayout` overrides `onTouchEvent` but not `performClick`"
        errorLine1="    public boolean onTouchEvent(MotionEvent ev) {"
        errorLine2="                   ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="776"
            column="20"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="        &lt;ImageView"
        errorLine2="         ~~~~~~~~~">
        <location
            file="res/layout/activity_album_detail.xml"
            line="15"
            column="10"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="            &lt;ImageView"
        errorLine2="             ~~~~~~~~~">
        <location
            file="res/layout/activity_album_detail.xml"
            line="61"
            column="14"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="        &lt;ImageView"
        errorLine2="         ~~~~~~~~~">
        <location
            file="res/layout/album_detail_song.xml"
            line="14"
            column="10"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/album_detail_song.xml"
            line="51"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/artist_detail_song.xml"
            line="5"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="        &lt;ImageView"
        errorLine2="         ~~~~~~~~~">
        <location
            file="res/layout/artist_detail_song.xml"
            line="25"
            column="10"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/artist_detail_song.xml"
            line="59"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/edit_queue_list_item.xml"
            line="22"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/edit_queue_list_item.xml"
            line="38"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/edit_track_list_item.xml"
            line="22"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/edit_track_list_item.xml"
            line="42"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/header_bar.xml"
            line="29"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/header_bar.xml"
            line="51"
            column="6"/>
    </issue>

    <issue
        id="ContentDescription"
        message="Missing `contentDescription` attribute on image"
        errorLine1="    &lt;ImageView"
        errorLine2="     ~~~~~~~~~">
        <location
            file="res/layout/list_item_queue.xml"
            line="27"
            column="6"/>
    </issue>

    <issue
        id="RtlSymmetry"
        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
        errorLine1="        android:paddingStart=&quot;@dimen/bottom_action_bar_info_padding_left&quot; >"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/bottom_action_bar.xml"
            line="43"
            column="9"/>
    </issue>

    <issue
        id="RtlSymmetry"
        message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
        errorLine1="        android:paddingEnd=&quot;@dimen/list_item_general_margin&quot; >"
        errorLine2="        ~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/edit_track_list_item.xml"
            line="37"
            column="9"/>
    </issue>

    <issue
        id="RtlSymmetry"
        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
        errorLine1="    android:paddingStart=&quot;@dimen/drag_and_drop_width&quot;"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/header_bar.xml"
            line="24"
            column="5"/>
    </issue>

    <issue
        id="RtlSymmetry"
        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
        errorLine1="        android:paddingStart=&quot;@dimen/list_item_queue_text_padding_left&quot;"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/list_item_queue.xml"
            line="41"
            column="9"/>
    </issue>

    <issue
        id="RtlSymmetry"
        message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
        errorLine1="            android:paddingStart=&quot;@dimen/list_preferred_item_padding&quot; >"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="res/layout/list_item_top_tracks.xml"
            line="63"
            column="13"/>
    </issue>

    <issue
        id="RtlEnabled"
        message="The project references RTL attributes, but does not explicitly enable or disable RTL support with `android:supportsRtl` in the manifest">
        <location
            file="AndroidManifest.xml"/>
    </issue>

    <issue
        id="KotlinPropertyAccess"
        message="This getter should be public such that `sourceId` can be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
        errorLine1="    protected long getSourceId() {"
        errorLine2="                   ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="99"
            column="20"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mAlbumName;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Album.java"
            line="39"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mArtistName;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Album.java"
            line="44"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mYear;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Album.java"
            line="54"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Album(final long albumId, final String albumName, final String artistName,"
        errorLine2="                                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Album.java"
            line="65"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Album(final long albumId, final String albumName, final String artistName,"
        errorLine2="                                                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Album.java"
            line="65"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                 final int songNumber, final String albumYear) {"
        errorLine2="                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Album.java"
            line="66"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumAdapter(final FragmentActivity context, final int layoutId,"
        errorLine2="                              ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumAdapter.java"
            line="77"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                        final Consumer&lt;Album> onItemClickedListener) {"
        errorLine2="                              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumAdapter.java"
            line="78"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Album getItem(int pos) {"
        errorLine2="           ~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumAdapter.java"
            line="98"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setData(List&lt;Album> albums) {"
        errorLine2="                        ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumAdapter.java"
            line="145"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IPopupMenuCallback.IListener listener) {"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumAdapter.java"
            line="184"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void addAlbumArtistDetails(AlbumArtistDetails details) {"
        errorLine2="                                             ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="65"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AlbumArtistDetails getAlbumArtistDetails(long audioId) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="81"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumArtPagerAdapter(FragmentManager fm) {"
        errorLine2="                                ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="99"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public static AlbumArtFragment newInstance(final long trackId) {"
        errorLine2="                      ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="172"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="181"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="               ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="190"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                       ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="190"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                                                      ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="190"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                 final Bundle savedInstanceState) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumArtPagerAdapter.java"
            line="191"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mAlbumName;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/AlbumArtistDetails.java"
            line="25"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mArtistName;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/AlbumArtistDetails.java"
            line="26"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getTitle() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="72"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PopupMenuHelper createActionMenuHelper() {"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="94"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void update(List&lt;Song> songs) {"
        errorLine2="                       ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="183"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PagerAdapter.MusicFragments getMusicFragmentParent() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="215"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onLoadFinished(@NonNull Loader&lt;List&lt;Song>> loader, List&lt;Song> data) {"
        errorLine2="                                                                   ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java"
            line="229"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumDetailSongAdapter(FragmentActivity activity) {"
        errorLine2="                                  ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumDetailSongAdapter.java"
            line="33"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Config.IdType getSourceType() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumDetailSongAdapter.java"
            line="43"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Holder newHolder(View root, ImageFetcher fetcher) {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumDetailSongAdapter.java"
            line="47"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Holder newHolder(View root, ImageFetcher fetcher) {"
        errorLine2="                               ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumDetailSongAdapter.java"
            line="47"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Holder newHolder(View root, ImageFetcher fetcher) {"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/AlbumDetailSongAdapter.java"
            line="47"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="91"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="108"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="108"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="108"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="109"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;SectionListContainer&lt;Album>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="149"
            column="83"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                               final SectionListContainer&lt;Album> data) {"
        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AlbumFragment.java"
            line="158"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumLoader(final Context context) {"
        errorLine2="                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumLoader.java"
            line="60"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumLoader(final Context context, final Long artistId) {"
        errorLine2="                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumLoader.java"
            line="68"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumLoader(final Context context, final Long artistId) {"
        errorLine2="                                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumLoader.java"
            line="68"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Album> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumLoader.java"
            line="75"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeAlbumCursor(final Context context, final Long artistId) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumLoader.java"
            line="137"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeAlbumCursor(final Context context, final Long artistId) {"
        errorLine2="                                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumLoader.java"
            line="137"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeAlbumCursor(final Context context, final Long artistId) {"
        errorLine2="                                                                      ~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumLoader.java"
            line="137"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Album mAlbum;"
        errorLine2="              ~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="35"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumPopupMenuHelper(Activity activity, FragmentManager fragmentManager) {"
        errorLine2="                                ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="37"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumPopupMenuHelper(Activity activity, FragmentManager fragmentManager) {"
        errorLine2="                                                   ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="37"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public abstract Album getAlbum(int position);"
        errorLine2="                    ~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="42"
            column="21"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuType onPreparePopupMenu(int position) {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="45"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected long[] getIdList() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="56"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Config.IdType getSourceType() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="66"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getArtistName() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="79"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onMenuItemClick(MenuItem item) {"
        errorLine2="                                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="84"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(PopupMenuType type, TreeSet&lt;Integer> set) {"
        errorLine2="                                 ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="100"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(PopupMenuType type, TreeSet&lt;Integer> set) {"
        errorLine2="                                                     ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AlbumPopupMenuHelper.java"
            line="100"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumScrimImage(Context context, AttributeSet attrs) {"
        errorLine2="                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlbumScrimImage.java"
            line="53"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumScrimImage(Context context, AttributeSet attrs) {"
        errorLine2="                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlbumScrimImage.java"
            line="53"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ImageView getImageView() {"
        errorLine2="           ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlbumScrimImage.java"
            line="73"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setTransitionDrawable(TransitionDrawable imageTransition,"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlbumScrimImage.java"
            line="109"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                      TransitionDrawable paletteTransition) {"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlbumScrimImage.java"
            line="110"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setGradientDrawable(GradientDrawable gradientDrawable) {"
        errorLine2="                                    ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlbumScrimImage.java"
            line="116"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumSongLoader(final Context context, final Long albumId) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumSongLoader.java"
            line="57"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumSongLoader(final Context context, final Long albumId) {"
        errorLine2="                                                        ~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumSongLoader.java"
            line="57"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Song> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumSongLoader.java"
            line="63"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeAlbumSongCursor(final Context context, final Long albumId) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumSongLoader.java"
            line="109"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeAlbumSongCursor(final Context context, final Long albumId) {"
        errorLine2="                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumSongLoader.java"
            line="109"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeAlbumSongCursor(final Context context, final Long albumId) {"
        errorLine2="                                                                          ~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/AlbumSongLoader.java"
            line="109"
            column="75"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void draw(final Canvas canvas) {"
        errorLine2="                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlphaPatternDrawable.java"
            line="60"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setColorFilter(final ColorFilter cf) {"
        errorLine2="                                     ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlphaPatternDrawable.java"
            line="75"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onBoundsChange(final Rect bounds) {"
        errorLine2="                                        ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AlphaPatternDrawable.java"
            line="80"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    default void onAnimationStart(Animator animation) {"
        errorLine2="                                  ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AnimatorEndListener.java"
            line="23"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    default void onAnimationCancel(Animator animation) {"
        errorLine2="                                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AnimatorEndListener.java"
            line="28"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    default void onAnimationRepeat(Animator animation) {"
        errorLine2="                                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/AnimatorEndListener.java"
            line="33"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PendingIntent buildPendingIntent(Context context, final String action,"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetBase.java"
            line="28"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PendingIntent buildPendingIntent(Context context, final String action,"
        errorLine2="                                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetBase.java"
            line="28"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PendingIntent buildPendingIntent(Context context, final String action,"
        errorLine2="                                                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetBase.java"
            line="28"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                               final ComponentName serviceName) {"
        errorLine2="                                                     ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetBase.java"
            line="29"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized AppWidgetLarge getInstance() {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="45"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpdate(final Context context, final AppWidgetManager appWidgetManager,"
        errorLine2="                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="53"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpdate(final Context context, final AppWidgetManager appWidgetManager,"
        errorLine2="                                                      ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="53"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                         final int[] appWidgetIds) {"
        errorLine2="                               ~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="54"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void notifyChange(final MusicPlaybackService service, final String what) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="99"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void notifyChange(final MusicPlaybackService service, final String what) {"
        errorLine2="                                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="99"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void performUpdate(final MusicPlaybackService service, final int[] appWidgetIds) {"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="111"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void performUpdate(final MusicPlaybackService service, final int[] appWidgetIds) {"
        errorLine2="                                                                        ~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java"
            line="111"
            column="73"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized AppWidgetLargeAlternate getInstance() {"
        errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="47"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpdate(final Context context, final AppWidgetManager appWidgetManager,"
        errorLine2="                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="55"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpdate(final Context context, final AppWidgetManager appWidgetManager,"
        errorLine2="                                                      ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="55"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            final int[] appWidgetIds) {"
        errorLine2="                  ~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="56"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void notifyChange(final MusicPlaybackService service, final String what) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="102"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void notifyChange(final MusicPlaybackService service, final String what) {"
        errorLine2="                                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="102"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void performUpdate(final MusicPlaybackService service, final int[] appWidgetIds) {"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="116"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void performUpdate(final MusicPlaybackService service, final int[] appWidgetIds) {"
        errorLine2="                                                                        ~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java"
            line="116"
            column="73"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized AppWidgetSmall getInstance() {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="46"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpdate(final Context context, final AppWidgetManager appWidgetManager,"
        errorLine2="                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="54"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpdate(final Context context, final AppWidgetManager appWidgetManager,"
        errorLine2="                                                      ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="54"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            final int[] appWidgetIds) {"
        errorLine2="                  ~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="55"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void notifyChange(final MusicPlaybackService service, final String what) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="100"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void notifyChange(final MusicPlaybackService service, final String what) {"
        errorLine2="                                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="100"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void performUpdate(final MusicPlaybackService service, final int[] appWidgetIds) {"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="112"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void performUpdate(final MusicPlaybackService service, final int[] appWidgetIds) {"
        errorLine2="                                                                        ~~~~~">
        <location
            file="src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java"
            line="112"
            column="73"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mBucketLabel;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Artist.java"
            line="54"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Artist(final long artistId, final String artistName,"
        errorLine2="                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Artist.java"
            line="64"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArtistAdapter(final FragmentActivity context, final int layoutId,"
        errorLine2="                               ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistAdapter.java"
            line="78"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                         final Consumer&lt;Integer> onItemClickListener) {"
        errorLine2="                               ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistAdapter.java"
            line="79"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IListener listener) {"
        errorLine2="                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistAdapter.java"
            line="140"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Artist getItem(int position) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistAdapter.java"
            line="144"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setData(List&lt;Artist> artists) {"
        errorLine2="                        ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistAdapter.java"
            line="148"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArtistDetailAlbumAdapter(final FragmentActivity activity) {"
        errorLine2="                                          ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailAlbumAdapter.java"
            line="72"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Album getItem(int position) {"
        errorLine2="           ~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailAlbumAdapter.java"
            line="131"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IListener listener) {"
        errorLine2="                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailAlbumAdapter.java"
            line="136"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public ViewHolder(View root) {"
        errorLine2="                          ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailAlbumAdapter.java"
            line="145"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setData(List&lt;Album> albums) {"
        errorLine2="                        ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailAlbumAdapter.java"
            line="153"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getTitle() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="140"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PopupMenuHelper createActionMenuHelper() {"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="171"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PagerAdapter.MusicFragments getMusicFragmentParent() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistDetailFragment.java"
            line="290"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArtistDetailSongAdapter(FragmentActivity activity) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailSongAdapter.java"
            line="31"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Config.IdType getSourceType() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailSongAdapter.java"
            line="41"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Holder newHolder(View root, ImageFetcher fetcher) {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailSongAdapter.java"
            line="46"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Holder newHolder(View root, ImageFetcher fetcher) {"
        errorLine2="                               ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailSongAdapter.java"
            line="46"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Holder newHolder(View root, ImageFetcher fetcher) {"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ArtistDetailSongAdapter.java"
            line="46"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="102"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="120"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="120"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="120"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="121"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;SectionListContainer&lt;Artist>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="167"
            column="84"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                               final SectionListContainer&lt;Artist> data) {"
        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/ArtistFragment.java"
            line="176"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArtistLoader(final Context context) {"
        errorLine2="                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/ArtistLoader.java"
            line="55"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Artist> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/ArtistLoader.java"
            line="60"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeArtistCursor(final Context context) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/ArtistLoader.java"
            line="119"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeArtistCursor(final Context context) {"
        errorLine2="                                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/ArtistLoader.java"
            line="119"
            column="49"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArtistPopupMenuHelper(Activity activity, FragmentManager fragmentManager) {"
        errorLine2="                                 ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="33"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArtistPopupMenuHelper(Activity activity, FragmentManager fragmentManager) {"
        errorLine2="                                                    ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="33"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public abstract Artist getArtist(int position);"
        errorLine2="                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="38"
            column="21"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuType onPreparePopupMenu(int position) {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="41"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Config.IdType getSourceType() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="52"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected long[] getIdList() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="57"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getArtistName() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="69"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onMenuItemClick(MenuItem item) {"
        errorLine2="                                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ArtistPopupMenuHelper.java"
            line="74"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AudioButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AudioButton.java"
            line="36"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AudioButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                    ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AudioButton.java"
            line="36"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onLongClick(final View view) {"
        errorLine2="                                     ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/AudioButton.java"
            line="47"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="121"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                                                           ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="121"
            column="76"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="122"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onOptionsItemSelected(MenuItem item) {"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="192"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="262"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="262"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceDisconnected(ComponentName name) {"
        errorLine2="                                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="272"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onLyrics(String lyrics) {"
        errorLine2="                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/AudioPlayerFragment.java"
            line="489"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {"
        errorLine2="                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="93"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onStartTrackingTouch(SeekBar seekBar) {"
        errorLine2="                                     ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="100"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onStopTrackingTouch(SeekBar seekBar) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="109"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(Bundle savedInstanceState) {"
        errorLine2="                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="187"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Object onRetainCustomNonConfigurationInstance() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="258"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCompletion(MediaPlayer mp) {"
        errorLine2="                             ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="479"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onError(MediaPlayer mp, int what, int extra) {"
        errorLine2="                           ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="488"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onPrepared(MediaPlayer mp) {"
        errorLine2="                           ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="521"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onTouch(View v, MotionEvent event) {"
        errorLine2="                           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="527"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onTouch(View v, MotionEvent event) {"
        errorLine2="                                   ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="527"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onClick(View v) {"
        errorLine2="                        ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="546"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onKeyDown(int keyCode, KeyEvent keyEvent) {"
        errorLine2="                                          ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/AudioPreviewActivity.java"
            line="664"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void init(final Bundle savedInstanceState) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="117"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="151"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="151"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceDisconnected(final ComponentName name) {"
        errorLine2="                                            ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="161"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onCreateOptionsMenu(final Menu menu) {"
        errorLine2="                                             ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="165"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onOptionsItemSelected(final MenuItem item) {"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="173"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setupActionBar(String title) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="243"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setActionBarTitle(String title) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="254"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setMusicStateListenerListener(final MusicStateListener status) {"
        errorLine2="                                                    ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="411"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void removeMusicStateListenerListener(final MusicStateListener status) {"
        errorLine2="                                                       ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/BaseActivity.java"
            line="424"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ViewGroup mRootView;"
        errorLine2="              ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="35"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract String getTitle();"
        errorLine2="                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="37"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(Bundle savedInstanceState) {"
        errorLine2="                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="46"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected HomeActivity getContainingActivity() {"
        errorLine2="              ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="60"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                 ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="65"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="65"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="65"
            column="61"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                   Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/BaseFragment.java"
            line="66"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected AlertDialog mPlaylistDialog;"
        errorLine2="              ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="47"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected EditText mPlaylist;"
        errorLine2="              ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="50"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Button mSaveButton;"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="53"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String mPrompt;"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="56"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String mDefaultName;"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="59"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onTextChanged(CharSequence s, int start, int before, int count) {"
        errorLine2="                              ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="103"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void beforeTextChanged(final CharSequence s, final int start, final int count,"
        errorLine2="                                        ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="108"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public abstract void initialize(Bundle savedInstanceState);"
        errorLine2="                                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/BasePlaylistDialog.java"
            line="116"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ViewGroup mRootView;"
        errorLine2="              ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="69"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected SongListAdapter mAdapter;"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="74"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected RecyclerView mListView;"
        errorLine2="              ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="79"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PopupMenuHelper mPopupMenuHelper;"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="84"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected LoadingEmptyContainer mLoadingEmptyContainer;"
        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="89"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="98"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Config.IdType getFragmentSourceType() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="133"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(TreeSet&lt;Integer> set) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="137"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="142"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="142"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="142"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="143"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setupNoResultsContainer(final NoResultsContainer empty) {"
        errorLine2="                                              ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="187"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                               final SectionListContainer&lt;Song> data) {"
        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="204"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected long[] getSongIdsFromAdapter() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="223"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected SongListAdapter createAdapter() {"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="257"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LoaderManager getFragmentLoaderManager() {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/BasicSongFragment.java"
            line="272"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWithColors(Bitmap bitmap, int bitmapKey) {"
        errorLine2="                            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/colors/BitmapWithColors.java"
            line="80"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWithColors(Bitmap bitmap, int bitmapKey, int vibrantColor, int vibrantDarkColor) {"
        errorLine2="                            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/colors/BitmapWithColors.java"
            line="91"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Bitmap getBitmap() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/colors/BitmapWithColors.java"
            line="97"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Drawable mFromDrawable;"
        errorLine2="              ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="49"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWorkerTask(final String key, final ImageView imageView, final ImageType imageType,"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="72"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWorkerTask(final String key, final ImageView imageView, final ImageType imageType,"
        errorLine2="                                                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="72"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWorkerTask(final String key, final ImageView imageView, final ImageType imageType,"
        errorLine2="                                                                               ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="72"
            column="80"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                            final Drawable fromDrawable, final Context context) {"
        errorLine2="                                  ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="73"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                            final Drawable fromDrawable, final Context context) {"
        errorLine2="                                                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="73"
            column="64"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWorkerTask(final String key, final ImageView imageView,"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="86"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWorkerTask(final String key, final ImageView imageView,"
        errorLine2="                                                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="86"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                            final ImageType imageType, final Drawable fromDrawable,"
        errorLine2="                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="87"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                            final ImageType imageType, final Drawable fromDrawable,"
        errorLine2="                                                             ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="87"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                            final Context context, final boolean scaleImgToView) {"
        errorLine2="                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="88"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ImageView getAttachedImageView() {"
        errorLine2="              ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="109"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Bitmap getBitmapInBackground(final String... params) {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="128"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Bitmap getBitmapInBackground(final String... params) {"
        errorLine2="                                                 ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="128"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable createImageTransitionDrawable(final Bitmap bitmap) {"
        errorLine2="              ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="139"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable createImageTransitionDrawable(final Bitmap bitmap) {"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="139"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable createImageTransitionDrawable(final Bitmap bitmap,"
        errorLine2="              ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="151"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable createImageTransitionDrawable(final Bitmap bitmap,"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BitmapWorkerTask.java"
            line="151"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public TransitionDrawable mImageViewBitmapDrawable;"
        errorLine2="               ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="41"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BlurBitmapWorkerTask(final String key, final AlbumScrimImage albumScrimImage,"
        errorLine2="                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="58"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BlurBitmapWorkerTask(final String key, final AlbumScrimImage albumScrimImage,"
        errorLine2="                                                        ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="58"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                final ImageType imageType, final Drawable fromDrawable,"
        errorLine2="                                      ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="59"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                final ImageType imageType, final Drawable fromDrawable,"
        errorLine2="                                                                 ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="59"
            column="66"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                final Context context) {"
        errorLine2="                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="60"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ResultContainer doInBackground(final String... params) {"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="72"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ResultContainer doInBackground(final String... params) {"
        errorLine2="                                                   ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="72"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onPostExecute(ResultContainer resultContainer) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="94"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected final ImageView getAttachedImageView() {"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/BlurBitmapWorkerTask.java"
            line="115"
            column="21"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onColorExtracted(final BitmapWithColors bitmapWithColors);"
        errorLine2="                                    ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/colors/ColorExtractor.java"
            line="26"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void extractColors(final ImageFetcher imageFetcher,"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/colors/ColorExtractor.java"
            line="29"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                     final ColorExtractor.Callback callback) {"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/colors/ColorExtractor.java"
            line="30"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ColorPanelView(final Context context) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ColorPanelView.java"
            line="56"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ColorPanelView(final Context context, final AttributeSet attrs) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ColorPanelView.java"
            line="60"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ColorPanelView(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ColorPanelView.java"
            line="60"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ColorPanelView(final Context context, final AttributeSet attrs, final int defStyle) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ColorPanelView.java"
            line="64"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ColorPanelView(final Context context, final AttributeSet attrs, final int defStyle) {"
        errorLine2="                                                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ColorPanelView.java"
            line="64"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onDraw(final Canvas canvas) {"
        errorLine2="                                ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ColorPanelView.java"
            line="76"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public static SmartPlaylistType getTypeById(long id) {"
        errorLine2="                      ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/Config.java"
            line="84"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public static IdType getTypeById(int id) {"
        errorLine2="                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/Config.java"
            line="111"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void show(Fragment target, int requestCode, int titleId, int okId) {"
        errorLine2="                            ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/ConfirmDialog.java"
            line="47"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Dialog onCreateDialog(final Bundle savedInstanceState) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/ConfirmDialog.java"
            line="59"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static CreateNewPlaylist getInstance(final long[] list) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/CreateNewPlaylist.java"
            line="41"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static CreateNewPlaylist getInstance(final long[] list) {"
        errorLine2="                                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/CreateNewPlaylist.java"
            line="41"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void initialize(final Bundle savedInstanceState) {"
        errorLine2="                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/CreateNewPlaylist.java"
            line="55"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void afterTextChanged(Editable editable) {"
        errorLine2="                                 ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/CreateNewPlaylist.java"
            line="94"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onDelete(long[] id);"
        errorLine2="                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/DeleteDialog.java"
            line="43"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static DeleteDialog newInstance(final String title, final long[] items,"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/DeleteDialog.java"
            line="68"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static DeleteDialog newInstance(final String title, final long[] items,"
        errorLine2="                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/DeleteDialog.java"
            line="68"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static DeleteDialog newInstance(final String title, final long[] items,"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/DeleteDialog.java"
            line="68"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                           final String key) {"
        errorLine2="                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/DeleteDialog.java"
            line="69"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Dialog onCreateDialog(final Bundle savedInstanceState) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/DeleteDialog.java"
            line="81"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PopupMenuHelper mActionMenuHelper;"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/DetailFragment.java"
            line="29"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract PopupMenuHelper createActionMenuHelper();"
        errorLine2="                       ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/DetailFragment.java"
            line="35"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreateOptionsMenu(@NonNull final Menu menu, final MenuInflater inflater) {"
        errorLine2="                                                                    ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/DetailFragment.java"
            line="54"
            column="69"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onOptionsItemSelected(final MenuItem item) {"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/DetailFragment.java"
            line="68"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public DetailSongAdapter(final FragmentActivity context) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="80"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Song getItem(int pos) {"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="90"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setCurrentlyPlayingTrack(MusicPlaybackTrack currentTrack) {"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="107"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract Config.IdType getSourceType();"
        errorLine2="                       ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="157"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setData(List&lt;Song> songs) {"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="177"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IListener listener) {"
        errorLine2="                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="209"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract Holder newHolder(View root, ImageFetcher fetcher);"
        errorLine2="                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="213"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract Holder newHolder(View root, ImageFetcher fetcher);"
        errorLine2="                                        ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="213"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract Holder newHolder(View root, ImageFetcher fetcher);"
        errorLine2="                                                   ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/DetailSongAdapter.java"
            line="213"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize)"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="202"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize)"
        errorLine2="                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="202"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public synchronized Snapshot get(String key) throws IOException {"
        errorLine2="                        ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="414"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public synchronized Snapshot get(String key) throws IOException {"
        errorLine2="                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="414"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Editor edit(String key) throws IOException {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="459"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Editor edit(String key) throws IOException {"
        errorLine2="                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="459"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public synchronized boolean remove(String key) throws IOException {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="560"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public InputStream getInputStream(int index) {"
        errorLine2="               ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="665"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public OutputStream newOutputStream(int index) {"
        errorLine2="               ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/disklrucache/DiskLruCache.java"
            line="703"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public DragSortItemTouchHelperCallback(DragSortListener listener) {"
        errorLine2="                                           ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/DragSortItemTouchHelperCallback.java"
            line="26"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean isLandscape(final Context context) {"
        errorLine2="                                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ElevenUtils.java"
            line="48"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;T> void execute(final AsyncTask&lt;T, ?, ?> task, final T... args) {"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ElevenUtils.java"
            line="62"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;T> void execute(final AsyncTask&lt;T, ?, ?> task, final T... args) {"
        errorLine2="                                                                        ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ElevenUtils.java"
            line="62"
            column="73"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void showCheatSheet(final View view) {"
        errorLine2="                                            ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ElevenUtils.java"
            line="72"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageFetcher getImageFetcher(final FragmentActivity activity) {"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ElevenUtils.java"
            line="111"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageFetcher getImageFetcher(final FragmentActivity activity) {"
        errorLine2="                                                     ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ElevenUtils.java"
            line="111"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static int getActionBarHeight(Context context) {"
        errorLine2="                                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ElevenUtils.java"
            line="122"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public int getColumnIndex(String columnName) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="89"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException {"
        errorLine2="                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="94"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getColumnName(int columnIndex) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="99"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String[] getColumnNames() {"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="104"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public byte[] getBlob(int columnIndex) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="114"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getString(int columnIndex) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="119"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) {"
        errorLine2="                                                    ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="124"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void registerContentObserver(ContentObserver observer) {"
        errorLine2="                                        ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="182"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void unregisterContentObserver(ContentObserver observer) {"
        errorLine2="                                          ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="186"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void registerDataSetObserver(DataSetObserver observer) {"
        errorLine2="                                        ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="190"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void unregisterDataSetObserver(DataSetObserver observer) {"
        errorLine2="                                          ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="194"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setNotificationUri(ContentResolver cr, Uri uri) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="198"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setNotificationUri(ContentResolver cr, Uri uri) {"
        errorLine2="                                                       ~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="198"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Uri getNotificationUri() {"
        errorLine2="           ~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="202"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setExtras(Bundle extras) {"
        errorLine2="                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="212"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Bundle getExtras() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="216"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Bundle respond(Bundle extras) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="221"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Bundle respond(Bundle extras) {"
        errorLine2="                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/EmptyCursor.java"
            line="221"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void fetch(FragmentActivity activity, int songId, TextView textView) {"
        errorLine2="                             ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/GenreFetcher.java"
            line="39"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void fetch(FragmentActivity activity, int songId, TextView textView) {"
        errorLine2="                                                                    ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/GenreFetcher.java"
            line="39"
            column="69"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;Cursor> onCreateLoader(int id, Bundle args) {"
        errorLine2="                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/GenreFetcher.java"
            line="52"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onLoadFinished(@NonNull Loader&lt;Cursor> loader, Cursor cursor) {"
        errorLine2="                                                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/GenreFetcher.java"
            line="59"
            column="64"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public HeaderBar(Context context, AttributeSet attrs) {"
        errorLine2="                     ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/HeaderBar.java"
            line="52"
            column="22"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public HeaderBar(Context context, AttributeSet attrs) {"
        errorLine2="                                      ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/HeaderBar.java"
            line="52"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setFragment(Fragment activity) {"
        errorLine2="                            ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/HeaderBar.java"
            line="56"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setHeaderClickListener(final OnClickListener listener) {"
        errorLine2="                                             ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/HeaderBar.java"
            line="88"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onPopupMenuItemClick(final MenuItem item) {"
        errorLine2="                                              ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/HeaderBar.java"
            line="117"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onCreate(Bundle savedInstanceState) {"
        errorLine2="                            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="100"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void init(Bundle savedInstanceState) {"
        errorLine2="                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="112"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Fragment getTopFragment() {"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="167"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void postRemoveFragment(final Fragment frag) {"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="171"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onNewIntent(Intent intent) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="185"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onActivityResult(int requestCode, int resultCode, Intent data) {"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="346"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void selectNewPhoto(String key) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="367"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onOptionsItemSelected(final MenuItem item) {"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/HomeActivity.java"
            line="376"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    PagerAdapter.MusicFragments getMusicFragmentParent();"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/IChildFragment.java"
            line="22"
            column="5"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onPopupMenuClicked(final View v, final int position);"
        errorLine2="                                      ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/IPopupMenuCallback.java"
            line="23"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    void setPopupMenuClickedListener(final IListener listener);"
        errorLine2="                                           ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/IPopupMenuCallback.java"
            line="26"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ImageCache(final Context context) {"
        errorLine2="                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="111"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageCache getInstance(final Context context) {"
        errorLine2="                  ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="121"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageCache getInstance(final Context context) {"
        errorLine2="                                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="121"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void initLruCache(final Context context) {"
        errorLine2="                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="177"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageCache findOrCreateCache(final FragmentActivity activity) {"
        errorLine2="                  ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="216"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageCache findOrCreateCache(final FragmentActivity activity) {"
        errorLine2="                                                     ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="216"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static RetainFragment findOrCreateRetainFragment(final FragmentManager fm) {"
        errorLine2="                  ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="241"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static RetainFragment findOrCreateRetainFragment(final FragmentManager fm) {"
        errorLine2="                                                                  ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="241"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToCache(final String data, final Bitmap bitmap) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="259"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToCache(final String data, final Bitmap bitmap) {"
        errorLine2="                                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="259"
            column="59"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToCache(final String data, final Bitmap bitmap, final boolean replace) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="270"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToCache(final String data, final Bitmap bitmap, final boolean replace) {"
        errorLine2="                                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="270"
            column="59"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToMemCache(final String data, final Bitmap bitmap) {"
        errorLine2="                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="315"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToMemCache(final String data, final Bitmap bitmap) {"
        errorLine2="                                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="315"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToMemCache(final String data, final Bitmap bitmap, final boolean replace) {"
        errorLine2="                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="326"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToMemCache(final String data, final Bitmap bitmap, final boolean replace) {"
        errorLine2="                                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="326"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getBitmapFromMemCache(final String data) {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="342"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getBitmapFromMemCache(final String data) {"
        errorLine2="                                                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="342"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getBitmapFromDiskCache(final String data) {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="352"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getBitmapFromDiskCache(final String data) {"
        errorLine2="                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="352"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getCachedBitmap(final String data) {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="393"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getCachedBitmap(final String data) {"
        errorLine2="                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="393"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getCachedArtwork(final Context context, final String data, final long id) {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="417"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getCachedArtwork(final Context context, final String data, final long id) {"
        errorLine2="                                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="417"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getCachedArtwork(final Context context, final String data, final long id) {"
        errorLine2="                                                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="417"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getArtworkFromFile(final Context context, final long albumId) {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="439"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final Bitmap getArtworkFromFile(final Context context, final long albumId) {"
        errorLine2="                                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="439"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void removeFromCache(final String key) {"
        errorLine2="                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="552"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static File getDiskCacheDir(final Context context, final String uniqueName) {"
        errorLine2="                  ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="580"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static File getDiskCacheDir(final Context context, final String uniqueName) {"
        errorLine2="                                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="580"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static File getDiskCacheDir(final Context context, final String uniqueName) {"
        errorLine2="                                                                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="580"
            column="69"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static File getExternalCacheDir(final Context context) {"
        errorLine2="                  ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="594"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static File getExternalCacheDir(final Context context) {"
        errorLine2="                                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="594"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long getUsableSpace(final File path) {"
        errorLine2="                                            ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="604"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String hashKeyForDisk(final String key) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="614"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String hashKeyForDisk(final String key) {"
        errorLine2="                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="614"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="664"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void setObject(final Object object) {"
        errorLine2="                                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="675"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public Object getObject() {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="684"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public static int getBitmapSize(final Bitmap bitmap) {"
        errorLine2="                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="706"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        protected int sizeOf(final String paramString, final Bitmap paramBitmap) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="711"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        protected int sizeOf(final String paramString, final Bitmap paramBitmap) {"
        errorLine2="                                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageCache.java"
            line="711"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ImageFetcher(final Context context) {"
        errorLine2="                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="57"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageFetcher getInstance(final Context context) {"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="68"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ImageFetcher getInstance(final Context context) {"
        errorLine2="                                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="68"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadPlaylistArtistImage(final long playlistId, final ImageView imageView) {"
        errorLine2="                                                                     ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="85"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadPlaylistCoverArtImage(final long playlistId, final ImageView imageView) {"
        errorLine2="                                                                       ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="95"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadAlbumImage(final String artistName, final String albumName, final long albumId,"
        errorLine2="                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="102"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadAlbumImage(final String artistName, final String albumName, final long albumId,"
        errorLine2="                                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="102"
            column="63"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                               final ImageView imageView) {"
        errorLine2="                                     ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="103"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadCurrentArtwork(final ImageView imageView) {"
        errorLine2="                                         ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="111"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void updateScrimImage(final AlbumScrimImage image,"
        errorLine2="                                       ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="116"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                 final ColorExtractor.Callback callback) {"
        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="117"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getCurrentCacheKey() {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="142"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadArtistImage(final String key, final ImageView imageView) {"
        errorLine2="                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="149"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadArtistImage(final String key, final ImageView imageView) {"
        errorLine2="                                                        ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="149"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadArtistImage(final String key, final ImageView imageView,"
        errorLine2="                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="156"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadArtistImage(final String key, final ImageView imageView,"
        errorLine2="                                                        ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="156"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void removeFromCache(final String key) {"
        errorLine2="                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="176"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWithColors getArtwork(final String albumName, final long albumId,"
        errorLine2="           ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="191"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWithColors getArtwork(final String albumName, final long albumId,"
        errorLine2="                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="191"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Bitmap getArtworkBitmap(final String albumName, final long albumId) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="203"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Bitmap getArtworkBitmap(final String albumName, final long albumId) {"
        errorLine2="                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="203"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String generateAlbumCacheKey(final String albumName, final String artistName) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="225"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String generateAlbumCacheKey(final String albumName, final String artistName) {"
        errorLine2="                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="225"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String generateAlbumCacheKey(final String albumName, final String artistName) {"
        errorLine2="                                                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="225"
            column="78"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap decodeSampledBitmapFromUri(ContentResolver cr, final Uri selectedImage) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="240"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap decodeSampledBitmapFromUri(ContentResolver cr, final Uri selectedImage) {"
        errorLine2="                                                    ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="240"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap decodeSampledBitmapFromUri(ContentResolver cr, final Uri selectedImage) {"
        errorLine2="                                                                              ~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="240"
            column="79"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static int calculateInSampleSize(final BitmapFactory.Options options,"
        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageFetcher.java"
            line="289"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap scaleBitmapForImageView(Bitmap src, ImageView imageView) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ImageUtils.java"
            line="33"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap scaleBitmapForImageView(Bitmap src, ImageView imageView) {"
        errorLine2="                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ImageUtils.java"
            line="33"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap scaleBitmapForImageView(Bitmap src, ImageView imageView) {"
        errorLine2="                                                             ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ImageUtils.java"
            line="33"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap drawableToBitmap(Drawable drawable) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ImageUtils.java"
            line="64"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap drawableToBitmap(Drawable drawable) {"
        errorLine2="                                          ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ImageUtils.java"
            line="64"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ImageCache mImageCache;"
        errorLine2="              ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="81"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ImageWorker(final Context context) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="88"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setImageCache(final ImageCache cacheCallback) {"
        errorLine2="                                    ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="100"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToCache(final String key, final Bitmap bitmap) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="131"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addBitmapToCache(final String key, final Bitmap bitmap) {"
        errorLine2="                                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="131"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Drawable getNewDrawable(ImageType imageType, String name,"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="140"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Drawable getNewDrawable(ImageType imageType, String name,"
        errorLine2="                                   ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="140"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Drawable getNewDrawable(ImageType imageType, String name,"
        errorLine2="                                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="140"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                   String identifier) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="141"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap getBitmapInBackground(final Context context, final ImageCache imageCache,"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="148"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap getBitmapInBackground(final Context context, final ImageCache imageCache,"
        errorLine2="                                                     ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="148"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Bitmap getBitmapInBackground(final Context context, final ImageCache imageCache,"
        errorLine2="                                                                            ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="148"
            column="77"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                               final String key, final long albumId,"
        errorLine2="                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="149"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                               final ImageType imageType) {"
        errorLine2="                                                     ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="150"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Drawable getTopDrawable(final Drawable drawable) {"
        errorLine2="                  ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="182"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Drawable getTopDrawable(final Drawable drawable) {"
        errorLine2="                                                ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="182"
            column="49"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static TransitionDrawable createImageTransitionDrawable(final Resources resources,"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="206"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static TransitionDrawable createImageTransitionDrawable(final Resources resources,"
        errorLine2="                                                                         ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="206"
            column="74"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                                                   final Drawable fromDrawable,"
        errorLine2="                                                                         ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="207"
            column="74"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                                                   final Bitmap bitmap,"
        errorLine2="                                                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="208"
            column="74"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static TransitionDrawable createPaletteTransition(AlbumScrimImage scrimImage,"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="244"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static TransitionDrawable createPaletteTransition(AlbumScrimImage scrimImage,"
        errorLine2="                                                             ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="244"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void cancelWork(final View image) {"
        errorLine2="                                        ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="267"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean executePotentialWork(final String key, final View view) {"
        errorLine2="                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="286"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean executePotentialWork(final String key, final View view) {"
        errorLine2="                                                                       ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="286"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AsyncTaskContainer getAsyncTaskContainer(final View view) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="309"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AsyncTaskContainer getAsyncTaskContainer(final View view) {"
        errorLine2="                                                                 ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="309"
            column="66"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BitmapWorkerTask getBitmapWorkerTask(final View view) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="329"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BitmapWorkerTask getBitmapWorkerTask(final View view) {"
        errorLine2="                                                             ~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="329"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public AsyncTaskContainer(final BitmapWorkerTask&lt;?, ?, ?> bitmapWorkerTask) {"
        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="355"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public BitmapWorkerTask&lt;?, ?, ?> getBitmapWorkerTask() {"
        errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="363"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String getKey() {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="367"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadDefaultImage(final ImageView imageView, final ImageType imageType,"
        errorLine2="                                       ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="378"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadDefaultImage(final ImageView imageView, final ImageType imageType,"
        errorLine2="                                                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="378"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                 final String name, final String identifier) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="379"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                 final String name, final String identifier) {"
        errorLine2="                                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="379"
            column="59"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void loadImage(final String key,"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="403"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final String artistName,"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="404"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final String albumName,"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="405"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final ImageView imageView,"
        errorLine2="                                   ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="407"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final ImageType imageType) {"
        errorLine2="                                   ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="408"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void loadImage(final String key, final String artistName, final String albumName,"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="424"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void loadImage(final String key, final String artistName, final String albumName,"
        errorLine2="                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="424"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void loadImage(final String key, final String artistName, final String albumName,"
        errorLine2="                                                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="424"
            column="79"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final long albumId, final ImageView imageView,"
        errorLine2="                                                       ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="425"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final ImageType imageType, final boolean scaleImgToView) {"
        errorLine2="                                   ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="426"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void loadPlaylistImage(final long playlistId, final PlaylistWorkerType type,"
        errorLine2="                                                               ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="484"
            column="64"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                  final ImageView imageView) {"
        errorLine2="                                        ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="485"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void loadBlurImage(final String key, final String artistName, final String albumName,"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="545"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void loadBlurImage(final String key, final String artistName, final String albumName,"
        errorLine2="                                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="545"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void loadBlurImage(final String key, final String artistName, final String albumName,"
        errorLine2="                                                                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="545"
            column="83"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                 final long albumId, final AlbumScrimImage albumScrimImage) {"
        errorLine2="                                                           ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/ImageWorker.java"
            line="546"
            column="60"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;SectionListContainer&lt;Song>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java"
            line="51"
            column="82"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setupNoResultsContainer(NoResultsContainer empty) {"
        errorLine2="                                        ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java"
            line="60"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                 ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java"
            line="68"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java"
            line="68"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java"
            line="68"
            column="61"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                   Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java"
            line="69"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected SmartPlaylistType getSmartPlaylistType() {"
        errorLine2="              ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/LastAddedFragment.java"
            line="89"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LastAddedLoader(final Context context) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/LastAddedLoader.java"
            line="51"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Song> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/LastAddedLoader.java"
            line="56"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeLastAddedCursor(final Context context) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/LastAddedLoader.java"
            line="105"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeLastAddedCursor(final Context context) {"
        errorLine2="                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/LastAddedLoader.java"
            line="105"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LayoutSuppressingImageView(final Context context, final AttributeSet attrs) {"
        errorLine2="                                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LayoutSuppressingImageView.java"
            line="37"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LayoutSuppressingImageView(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                                   ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LayoutSuppressingImageView.java"
            line="37"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LetterTileDrawable(final Context context) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="118"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void draw(final Canvas canvas) {"
        errorLine2="                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="127"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setBounds(Rect bounds) {"
        errorLine2="                          ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="138"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setColorFilter(final ColorFilter cf) {"
        errorLine2="                                     ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="269"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setTileDetails(final String displayName, final String identifier,"
        errorLine2="                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="304"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setTileDetails(final String displayName, final String identifier,"
        errorLine2="                                                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="304"
            column="64"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                               final ImageType type) {"
        errorLine2="                                     ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="305"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BitmapWithColors createDefaultBitmap(Context context, String identifier,"
        errorLine2="                  ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="347"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BitmapWithColors createDefaultBitmap(Context context, String identifier,"
        errorLine2="                                                       ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="347"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BitmapWithColors createDefaultBitmap(Context context, String identifier,"
        errorLine2="                                                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="347"
            column="73"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                                       ImageType type, boolean isCircle,"
        errorLine2="                                                       ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LetterTileDrawable.java"
            line="348"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;E> ArrayList&lt;E> newArrayList() {"
        errorLine2="                      ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/Lists.java"
            line="37"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;E> LinkedList&lt;E> newLinkedList() {"
        errorLine2="                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/Lists.java"
            line="49"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LoadingEmptyContainer(Context context, AttributeSet attrs) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LoadingEmptyContainer.java"
            line="39"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LoadingEmptyContainer(Context context, AttributeSet attrs) {"
        errorLine2="                                                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LoadingEmptyContainer.java"
            line="39"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public NoResultsContainer getNoResultsContainer() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/LoadingEmptyContainer.java"
            line="78"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onReceive(Context context, Intent intent) {"
        errorLine2="                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleChangeReceiver.java"
            line="32"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onReceive(Context context, Intent intent) {"
        errorLine2="                                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleChangeReceiver.java"
            line="32"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static LocaleSet getDefault() {"
        errorLine2="                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="80"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LocaleSet(Locale locale) {"
        errorLine2="                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="84"
            column="22"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static LocaleSet getLocaleSet(String localeString) {"
        errorLine2="                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="99"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static LocaleSet getLocaleSet(String localeString) {"
        errorLine2="                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="99"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LocaleSet(Locale primaryLocale, Locale secondaryLocale) {"
        errorLine2="                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="123"
            column="22"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LocaleSet(Locale primaryLocale, Locale secondaryLocale) {"
        errorLine2="                                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="123"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LocaleSet normalize() {"
        errorLine2="           ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="130"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Locale getPrimaryLocale() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="154"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Locale getSecondaryLocale() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="158"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean isPrimaryLocale(Locale locale) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="162"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean isSecondaryLocale(Locale locale) {"
        errorLine2="                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="166"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean isPrimaryLanguage(String language) {"
        errorLine2="                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="178"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean isSecondaryLanguage(String language) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSet.java"
            line="182"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LocaleSetManager(final Context context) {"
        errorLine2="                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSetManager.java"
            line="37"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void updateLocaleSet(LocaleSet localeSet) {"
        errorLine2="                                ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSetManager.java"
            line="76"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LocaleSet getSystemLocaleSet() {"
        errorLine2="           ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSetManager.java"
            line="108"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LocaleSet getStoredLocaleSet() {"
        errorLine2="           ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSetManager.java"
            line="116"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Locale getLocale() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleSetManager.java"
            line="128"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean isLocale(LocaleSet locales) {"
        errorLine2="                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="195"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized LocaleUtils getInstance() {"
        errorLine2="                               ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="199"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized void setLocales(LocaleSet locales) {"
        errorLine2="                                               ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="206"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public int getBucketIndex(String name) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="212"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getBucketLabel(int bucketIndex) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="216"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getLabel(String name) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="220"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getLabel(String name) {"
        errorLine2="                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="220"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArrayList&lt;String> getLabels() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/locale/LocaleUtils.java"
            line="224"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized LocalizedStore getInstance(final Context context) {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="80"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized LocalizedStore getInstance(final Context context) {"
        errorLine2="                                                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="80"
            column="65"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final SQLiteDatabase db) {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="108"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpgrade(final SQLiteDatabase db, final int oldVersion) {"
        errorLine2="                                ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="140"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onDowngrade(SQLiteDatabase db) {"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="150"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SortData getSortOrder(SortParameter itemType, SortParameter sortType,"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="345"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SortData getSortOrder(SortParameter itemType, SortParameter sortType,"
        errorLine2="                                 ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="345"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SortData getSortOrder(SortParameter itemType, SortParameter sortType,"
        errorLine2="                                                         ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="345"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Cursor getLocalizedSort(Cursor cursor, String columnName, SortParameter idType,"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="429"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Cursor getLocalizedSort(Cursor cursor, String columnName, SortParameter idType,"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="429"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Cursor getLocalizedSort(Cursor cursor, String columnName, SortParameter idType,"
        errorLine2="                                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="429"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Cursor getLocalizedSort(Cursor cursor, String columnName, SortParameter idType,"
        errorLine2="                                                                     ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="429"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                   SortParameter sortType, boolean descending, boolean update) {"
        errorLine2="                                   ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/LocalizedStore.java"
            line="430"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void logd(String tag, String msg) throws IllegalArgumentException {"
        errorLine2="                            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/util/Logger.java"
            line="41"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void logd(String tag, String msg) throws IllegalArgumentException {"
        errorLine2="                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/util/Logger.java"
            line="41"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void loge(String tag, String msg) throws IllegalArgumentException {"
        errorLine2="                            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/util/Logger.java"
            line="59"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void loge(String tag, String msg) throws IllegalArgumentException {"
        errorLine2="                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/preview/util/Logger.java"
            line="59"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onReceive(final Context context, final Intent intent) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MediaButtonIntentReceiver.java"
            line="46"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onReceive(final Context context, final Intent intent) {"
        errorLine2="                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MediaButtonIntentReceiver.java"
            line="46"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LoaderManager getContainingLoaderManager() {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserFragment.java"
            line="31"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void initLoader(LoaderManager.LoaderCallbacks&lt;?> callback) {"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserFragment.java"
            line="36"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void restartLoader(LoaderManager.LoaderCallbacks&lt;?> callback) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserFragment.java"
            line="40"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getTitle() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java"
            line="85"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java"
            line="90"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onOptionsItemSelected(final MenuItem item) {"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java"
            line="174"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArtistFragment getArtistFragment() {"
        errorLine2="           ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java"
            line="268"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public AlbumFragment getAlbumFragment() {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java"
            line="276"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongFragment getSongFragment() {"
        errorLine2="           ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java"
            line="284"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized MusicDB getInstance(final Context context) {"
        errorLine2="                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicDB.java"
            line="52"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized MusicDB getInstance(final Context context) {"
        errorLine2="                                                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicDB.java"
            line="52"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public MusicDB(final Context context) {"
        errorLine2="                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicDB.java"
            line="59"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(SQLiteDatabase db) {"
        errorLine2="                         ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicDB.java"
            line="65"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {"
        errorLine2="                          ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicDB.java"
            line="75"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicDB.java"
            line="82"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public MusicHolder(final View view) {"
        errorLine2="                             ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/MusicHolder.java"
            line="96"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String lineOne;"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/MusicHolder.java"
            line="140"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String lineOneRight;"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/MusicHolder.java"
            line="147"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String lineTwo;"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/MusicHolder.java"
            line="154"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public IBinder onBind(final Intent intent) {"
        errorLine2="           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="554"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public IBinder onBind(final Intent intent) {"
        errorLine2="                                ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="554"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onUnbind(final Intent intent) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="561"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onRebind(final Intent intent) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="586"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public int onStartCommand(final Intent intent, final int flags, final int startId) {"
        errorLine2="                                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="805"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean openFile(final String path) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="1768"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public int[] getQueueHistoryList() {"
        errorLine2="           ~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2044"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getPath() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2060"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getAlbumName() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2074"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getTrackName() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2088"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getGenreName() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2102"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getArtistName() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2131"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getAlbumArtistName() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2145"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public MusicPlaybackTrack getCurrentTrack() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2197"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public synchronized MusicPlaybackTrack getTrack(int index) {"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2207"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public long[] getQueue() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2322"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void open(final long[] list, final int position, long sourceId, IdType sourceType) {"
        errorLine2="                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2406"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void open(final long[] list, final int position, long sourceId, IdType sourceType) {"
        errorLine2="                                                                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2406"
            column="76"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void enqueue(final long[] list, final int action, long sourceId, IdType sourceType) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2777"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void enqueue(final long[] list, final int action, long sourceId, IdType sourceType) {"
        errorLine2="                                                                            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2777"
            column="77"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public BitmapWithColors getAlbumArt(boolean smallBitmap) {"
        errorLine2="           ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/MusicPlaybackService.java"
            line="2830"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public MusicPlaybackState(final Context context) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="45"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final SQLiteDatabase db) {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="49"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion) {"
        errorLine2="                                ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="80"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onDowngrade(SQLiteDatabase db) {"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="87"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized MusicPlaybackState getInstance(final Context context) {"
        errorLine2="                               ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="98"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized MusicPlaybackState getInstance(final Context context) {"
        errorLine2="                                                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="98"
            column="69"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public synchronized void saveState(final ArrayList&lt;MusicPlaybackTrack> queue,"
        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="112"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                       LinkedList&lt;Integer> history) {"
        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="113"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArrayList&lt;MusicPlaybackTrack> getQueue() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="168"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LinkedList&lt;Integer> getHistory(final int playlistSize) {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/MusicPlaybackState.java"
            line="186"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public MusicPlaybackTrack(long id, long sourceId, Config.IdType type, int sourcePosition) {"
        errorLine2="                                                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/service/MusicPlaybackTrack.java"
            line="67"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public MusicPlaybackTrack(Parcel in) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/service/MusicPlaybackTrack.java"
            line="74"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void writeToParcel(Parcel dest, int flags) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/service/MusicPlaybackTrack.java"
            line="87"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ServiceToken bindToService(final Context context,"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="113"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ServiceToken bindToService(final Context context,"
        errorLine2="                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="113"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                             final ServiceConnection callback) {"
        errorLine2="                                                   ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="114"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void unbindFromService(final ServiceToken token) {"
        errorLine2="                                               ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="129"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public ServiceBinder(final ServiceConnection callback) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="155"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onServiceConnected(final ComponentName className, final IBinder service) {"
        errorLine2="                                             ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="160"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onServiceConnected(final ComponentName className, final IBinder service) {"
        errorLine2="                                                                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="160"
            column="77"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onServiceDisconnected(final ComponentName className) {"
        errorLine2="                                                ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="168"
            column="49"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeLabel(final Context context, final int pluralInt,"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="224"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeLabel(final Context context, final int pluralInt,"
        errorLine2="                                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="224"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeShortTimeString(final Context context, long secs) {"
        errorLine2="                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="237"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeLongTimeString(final Context context, long secs) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="257"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeLongTimeString(final Context context, long secs) {"
        errorLine2="                                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="257"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeCombinedString(final Context context, final String first,"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="285"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeCombinedString(final Context context, final String first,"
        errorLine2="                                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="285"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String makeCombinedString(final Context context, final String first,"
        errorLine2="                                                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="285"
            column="74"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                            final String second) {"
        errorLine2="                                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="286"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void asyncNext(final Context context) {"
        errorLine2="                                       ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="308"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void previous(final Context context, final boolean force) {"
        errorLine2="                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="328"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getTrackName() {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="454"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getArtistName() {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="469"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getAlbumName() {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="484"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MusicPlaybackTrack getCurrentTrack() {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="529"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MusicPlaybackTrack getTrack(int index) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="544"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getQueue() {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="589"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForCursor(Cursor cursor) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="715"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForCursor(Cursor cursor) {"
        errorLine2="                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="715"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForArtist(final Context context, final long id) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="744"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForArtist(final Context context, final long id) {"
        errorLine2="                                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="744"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForAlbum(final Context context, final long id) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="760"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForAlbum(final Context context, final long id) {"
        errorLine2="                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="760"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void playArtist(final Context context, final long artistId, int position,"
        errorLine2="                                        ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="776"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void playAll(final Context context, final long[] list, int position,"
        errorLine2="                                     ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="790"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void playAll(final Context context, final long[] list, int position,"
        errorLine2="                                                            ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="790"
            column="61"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                               final long sourceId, final IdType sourceType,"
        errorLine2="                                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="791"
            column="59"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void playNext(final long[] list, final long sourceId, final IdType sourceType) {"
        errorLine2="                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="814"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void playNext(final long[] list, final long sourceId, final IdType sourceType) {"
        errorLine2="                                                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="814"
            column="79"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void shuffleAll(final Context context) {"
        errorLine2="                                        ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="830"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long getIdForPlaylist(final Context context, final String name) {"
        errorLine2="                                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="867"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long getIdForPlaylist(final Context context, final String name) {"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="867"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getNameForPlaylist(final Context context, final long id) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="893"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getNameForPlaylist(final Context context, final long id) {"
        errorLine2="                                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="893"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long getIdForArtist(final Context context, final String name) {"
        errorLine2="                                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="914"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long getIdForArtist(final Context context, final String name) {"
        errorLine2="                                                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="914"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void playAlbum(final Context context, final long albumId, int position,"
        errorLine2="                                       ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="938"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void makeInsertItems(final long[] ids, final int offset, int len,"
        errorLine2="                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="946"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long createPlaylist(final Context context, final String name) {"
        errorLine2="                                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="969"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long createPlaylist(final Context context, final String name) {"
        errorLine2="                                                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="969"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void clearPlaylist(final Context context, final int playlistId) {"
        errorLine2="                                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="999"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void clearTopTracks(Context context) {"
        errorLine2="                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1007"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void clearRecent(Context context) {"
        errorLine2="                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1014"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void clearLastAdded(Context context) {"
        errorLine2="                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1021"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void addToPlaylist(final Context context, final long[] ids,"
        errorLine2="                                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1031"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void addToPlaylist(final Context context, final long[] ids,"
        errorLine2="                                                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1031"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void removeFromPlaylist(final Context context, final long id,"
        errorLine2="                                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1065"
            column="49"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void addToQueue(final Context context, final long[] list, long sourceId,"
        errorLine2="                                        ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1082"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void addToQueue(final Context context, final long[] list, long sourceId,"
        errorLine2="                                                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1082"
            column="64"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                  IdType sourceType) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1083"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void setRingtone(final Context context, final long id) {"
        errorLine2="                                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1101"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static int getSongCountForAlbumInt(final Context context, final long id) {"
        errorLine2="                                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1135"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static int getSongCountForPlaylist(final Context context, final long playlistId) {"
        errorLine2="                                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1164"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AlbumArtistDetails getAlbumArtDetails(final Context context, final long trackId) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1179"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AlbumArtistDetails getAlbumArtDetails(final Context context, final long trackId) {"
        errorLine2="                                                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1179"
            column="63"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getReleaseDateForAlbum(final Context context, final long id) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1220"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getReleaseDateForAlbum(final Context context, final long id) {"
        errorLine2="                                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1220"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForPlaylist(final Context context, final long playlistId) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1258"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForPlaylist(final Context context, final long playlistId) {"
        errorLine2="                                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1258"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void playPlaylist(final Context context, final long playlistId, boolean shuffle) {"
        errorLine2="                                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1273"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForSmartPlaylist(final Context context,"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1285"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static long[] getSongListForSmartPlaylist(final Context context,"
        errorLine2="                                                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1285"
            column="60"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                                     final SmartPlaylistType type) {"
        errorLine2="                                                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1286"
            column="60"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;String> makePlaylist(final Context context) {"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1313"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;String> makePlaylist(final Context context) {"
        errorLine2="                                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1313"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void deleteTracks(final Context context, final long[] list) {"
        errorLine2="                                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1464"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void deleteTracks(final Context context, final long[] list) {"
        errorLine2="                                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1464"
            column="66"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getTrimmedName(String name) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1547"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getTrimmedName(String name) {"
        errorLine2="                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1547"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getLocalizedBucketLetter(String name) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1580"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getLocalizedBucketLetter(String name) {"
        errorLine2="                                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1580"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean isBlank(String s) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1597"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void removeFromCache(FragmentActivity activity, String key) {"
        errorLine2="                                       ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1617"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void removeFromCache(FragmentActivity activity, String key) {"
        errorLine2="                                                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1617"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void selectOldPhoto(FragmentActivity activity, String key) {"
        errorLine2="                                      ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1629"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void selectOldPhoto(FragmentActivity activity, String key) {"
        errorLine2="                                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1629"
            column="66"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean isSortOrderDesending(String sortOrder) {"
        errorLine2="                                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1639"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;E> String buildCollectionAsString(Collection&lt;E> items) {"
        errorLine2="                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1649"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;E> String buildCollectionAsString(Collection&lt;E> items) {"
        errorLine2="                                                     ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1649"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int compare(String s1, String s2) {"
        errorLine2="                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1665"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int compare(String s1, String s2) {"
        errorLine2="                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/MusicUtils.java"
            line="1665"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openArtistProfile(final Activity context, final String artistName) {"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="47"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openArtistProfile(final Activity context, final String artistName) {"
        errorLine2="                                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="47"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openAlbumProfile(final Activity context, final String albumName,"
        errorLine2="                                              ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="69"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openAlbumProfile(final Activity context, final String albumName,"
        errorLine2="                                                                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="69"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                        final String artistName, final long albumId) {"
        errorLine2="                                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="70"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openSmartPlaylist(final Activity context,"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="87"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                         final Config.SmartPlaylistType type) {"
        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="88"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openPlaylist(final Activity context, final long playlistId,"
        errorLine2="                                          ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="103"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                    final String playlistName) {"
        errorLine2="                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="104"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openEffectsPanel(final Activity context, final int requestCode) {"
        errorLine2="                                              ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="132"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean hasEffectsPanel(final Activity activity) {"
        errorLine2="                                                ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="145"
            column="49"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void openSettings(final Activity activity) {"
        errorLine2="                                          ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="156"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void goHome(final Activity activity, final int browseIndex) {"
        errorLine2="                                    ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/NavUtils.java"
            line="166"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public NoResultsContainer(Context context, AttributeSet attrs) {"
        errorLine2="                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/NoResultsContainer.java"
            line="35"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public NoResultsContainer(Context context, AttributeSet attrs) {"
        errorLine2="                                               ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/NoResultsContainer.java"
            line="35"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public NowPlayingCursor(final Context context) {"
        errorLine2="                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/NowPlayingCursor.java"
            line="72"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getString(final int column) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/NowPlayingCursor.java"
            line="100"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String[] getColumnNames() {"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/NowPlayingCursor.java"
            line="155"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PagerAdapter(final Context context, final FragmentManager fragmentManager) {"
        errorLine2="                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="59"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PagerAdapter(final Context context, final FragmentManager fragmentManager) {"
        errorLine2="                                                     ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="59"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void add(final Class&lt;? extends Fragment> className, final Bundle params) {"
        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="72"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void add(final Class&lt;? extends Fragment> className, final Bundle params) {"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="72"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Fragment getFragment(final int position) {"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="89"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public CharSequence getPageTitle(final int position) {"
        errorLine2="           ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="140"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public Class&lt;? extends Fragment> getFragmentClass() {"
        errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PagerAdapter.java"
            line="182"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static PhotoSelectionDialog newInstance(final String title, String key) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/PhotoSelectionDialog.java"
            line="60"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static PhotoSelectionDialog newInstance(final String title, String key) {"
        errorLine2="                                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/PhotoSelectionDialog.java"
            line="60"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static PhotoSelectionDialog newInstance(final String title, String key) {"
        errorLine2="                                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/PhotoSelectionDialog.java"
            line="60"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Dialog onCreateDialog(final Bundle savedInstanceState) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/PhotoSelectionDialog.java"
            line="71"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlayPauseButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseButton.java"
            line="51"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlayPauseButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                        ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseButton.java"
            line="51"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onClick(final View v) {"
        errorLine2="                              ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseButton.java"
            line="61"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onLongClick(final View view) {"
        errorLine2="                                     ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseButton.java"
            line="67"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlayPauseButtonContainer(Context context, AttributeSet attrs) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseButtonContainer.java"
            line="28"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlayPauseButtonContainer(Context context, AttributeSet attrs) {"
        errorLine2="                                                     ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseButtonContainer.java"
            line="28"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlayPauseProgressButton(Context context, AttributeSet attrs) {"
        errorLine2="                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseProgressButton.java"
            line="40"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlayPauseProgressButton(Context context, AttributeSet attrs) {"
        errorLine2="                                                    ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PlayPauseProgressButton.java"
            line="40"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mPlaylistName;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Playlist.java"
            line="40"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Playlist(final long playlistId, final String playlistName, final int songCount) {"
        errorLine2="                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Playlist.java"
            line="53"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int compare(Playlist p1, Playlist p2) {"
        errorLine2="                           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Playlist.java"
            line="93"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int compare(Playlist p1, Playlist p2) {"
        errorLine2="                                        ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Playlist.java"
            line="93"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected IListener mListener;"
        errorLine2="              ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PlaylistAdapter.java"
            line="72"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlaylistAdapter(final FragmentActivity activity,"
        errorLine2="                                 ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PlaylistAdapter.java"
            line="86"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                           final Consumer&lt;Integer> onItemClickListener) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PlaylistAdapter.java"
            line="87"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Playlist getItem(int position) {"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PlaylistAdapter.java"
            line="158"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void add(Playlist playlist) {"
        errorLine2="                    ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PlaylistAdapter.java"
            line="162"
            column="21"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IListener listener) {"
        errorLine2="                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/PlaylistAdapter.java"
            line="203"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized PlaylistArtworkStore getInstance(final Context context) {"
        errorLine2="                               ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="42"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized PlaylistArtworkStore getInstance(final Context context) {"
        errorLine2="                                                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="42"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getCoverCacheKey(final long playlistId) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="53"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static String getArtistCacheKey(final long playlistId) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="61"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlaylistArtworkStore(final Context context) {"
        errorLine2="                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="70"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final SQLiteDatabase db) {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="75"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onDowngrade(SQLiteDatabase db) {"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PlaylistArtworkStore.java"
            line="94"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getTitle() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="94"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PopupMenuHelper createActionMenuHelper() {"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="116"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(Bundle savedInstanceState) {"
        errorLine2="                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="136"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;List&lt;Song>> onCreateLoader(int i, Bundle bundle) {"
        errorLine2="                                                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="255"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onLoadFinished(@NonNull final Loader&lt;List&lt;Song>> loader, final List&lt;Song> data) {"
        errorLine2="                                                                               ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="262"
            column="80"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PagerAdapter.MusicFragments getMusicFragmentParent() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistDetailFragment.java"
            line="357"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistFragment.java"
            line="88"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistFragment.java"
            line="105"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                                                           ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistFragment.java"
            line="105"
            column="76"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistFragment.java"
            line="106"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;List&lt;Playlist>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistFragment.java"
            line="162"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                               final List&lt;Playlist> data) {"
        errorLine2="                                     ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/PlaylistFragment.java"
            line="170"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlaylistLoader(final Context context) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistLoader.java"
            line="53"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Playlist> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistLoader.java"
            line="58"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makePlaylistCursor(final Context context) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistLoader.java"
            line="115"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makePlaylistCursor(final Context context) {"
        errorLine2="                                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistLoader.java"
            line="115"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlaylistPopupMenuHelper(Activity activity, FragmentManager fragmentManager,"
        errorLine2="                                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="35"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlaylistPopupMenuHelper(Activity activity, FragmentManager fragmentManager,"
        errorLine2="                                                      ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="35"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                   PopupMenuType type) {"
        errorLine2="                                   ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="36"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public abstract Playlist getPlaylist(int position);"
        errorLine2="                    ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="41"
            column="21"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuType onPreparePopupMenu(int position) {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="44"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void updateName(String name) {"
        errorLine2="                           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="50"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Config.IdType getSourceType() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="62"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected long[] getIdList() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PlaylistPopupMenuHelper.java"
            line="67"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlaylistSongLoader(final Context context, final long playlistId) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistSongLoader.java"
            line="62"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Song> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistSongLoader.java"
            line="68"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makePlaylistSongCursor(final Context context, final Long playlistID) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistSongLoader.java"
            line="246"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makePlaylistSongCursor(final Context context, final Long playlistID) {"
        errorLine2="                                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistSongLoader.java"
            line="246"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makePlaylistSongCursor(final Context context, final Long playlistID) {"
        errorLine2="                                                                             ~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/PlaylistSongLoader.java"
            line="246"
            column="78"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PlaylistWorkerTask(final String key, final long playlistId,"
        errorLine2="                                    ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="74"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                              final PlaylistWorkerType type, final boolean foundInCache,"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="75"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                              final ImageView imageView, final Drawable fromDrawable,"
        errorLine2="                                    ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="76"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                              final ImageView imageView, final Drawable fromDrawable,"
        errorLine2="                                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="76"
            column="64"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                              final Context context) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="77"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable doInBackground(final Void... params) {"
        errorLine2="              ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="88"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable doInBackground(final Void... params) {"
        errorLine2="                                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="88"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Cursor getTopSongsForPlaylist() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="172"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Bitmap loadTopArtist(Cursor sortedCursor) {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="222"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Bitmap loadTopArtist(Cursor sortedCursor) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="222"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Bitmap loadTopSongs(Cursor sortedCursor) {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="268"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Bitmap loadTopSongs(Cursor sortedCursor) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="268"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onPostExecute(TransitionDrawable transitionDrawable) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/PlaylistWorkerTask.java"
            line="361"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected IListener mClickListener = null;"
        errorLine2="              ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PopupMenuButton.java"
            line="31"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuButton(Context context, AttributeSet attrs) {"
        errorLine2="                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PopupMenuButton.java"
            line="33"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuButton(Context context, AttributeSet attrs) {"
        errorLine2="                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PopupMenuButton.java"
            line="33"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(final IListener listener) {"
        errorLine2="                                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PopupMenuButton.java"
            line="46"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onClick(View v) {"
        errorLine2="                        ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/PopupMenuButton.java"
            line="51"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected PopupMenuType mType;"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="61"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuHelper(final Activity activity, final FragmentManager fragmentManager) {"
        errorLine2="                                 ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="64"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuHelper(final Activity activity, final FragmentManager fragmentManager) {"
        errorLine2="                                                          ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="64"
            column="59"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void showPopupMenu(final View view, final int position) {"
        errorLine2="                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="76"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public abstract PopupMenuType onPreparePopupMenu(final int position);"
        errorLine2="                    ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="102"
            column="21"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract long[] getIdList();"
        errorLine2="                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="107"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract Config.IdType getSourceType();"
        errorLine2="                       ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="111"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getArtistName() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="131"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void createPopupMenu(final Menu menu) {"
        errorLine2="                                      ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="180"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(PopupMenuType type, TreeSet&lt;Integer> set) {"
        errorLine2="                                 ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="272"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(PopupMenuType type, TreeSet&lt;Integer> set) {"
        errorLine2="                                                     ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="272"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void addToMenu(final Menu menu, final int id, final int resourceId) {"
        errorLine2="                                ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="337"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onMenuItemClick(MenuItem item) {"
        errorLine2="                                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PopupMenuHelper.java"
            line="342"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PreferenceUtils(final Context context) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="87"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static PreferenceUtils getInstance(final Context context) {"
        errorLine2="                  ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="95"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static PreferenceUtils getInstance(final Context context) {"
        errorLine2="                                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="95"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener) {"
        errorLine2="                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="117"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void removeOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener) {"
        errorLine2="                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="124"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setArtistSortOrder(final String value) {"
        errorLine2="                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="154"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final String getArtistSortOrder() {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="161"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setAlbumSortOrder(final String value) {"
        errorLine2="                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="170"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final String getAlbumSortOrder() {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="177"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final String getAlbumSongSortOrder() {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="185"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setSongSortOrder(final String value) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="195"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final String getSongSortOrder() {"
        errorLine2="                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="202"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean canRecordAudio(Activity activity) {"
        errorLine2="                                         ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="224"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void requestRecordAudio(Activity activity) {"
        errorLine2="                                          ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/PreferenceUtils.java"
            line="229"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ProfileSongAdapter(final long playlistId, final FragmentActivity context,"
        errorLine2="                                                           ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="94"
            column="60"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                              final int layoutId, final Consumer&lt;Integer> onItemClickListener) {"
        errorLine2="                                                        ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="95"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected boolean showNowPlayingIndicator(final Song song) {"
        errorLine2="                                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="113"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IPopupMenuCallback.IListener listener) {"
        errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="174"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setCurrentlyPlayingTrack(MusicPlaybackTrack currentTrack) {"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="183"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Song getItem(int position) {"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="205"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setData(List&lt;Song> songs) {"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="209"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void remove(Song song) {"
        errorLine2="                       ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/ProfileSongAdapter.java"
            line="233"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized PropertiesStore getInstance(final Context context) {"
        errorLine2="                               ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="30"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized PropertiesStore getInstance(final Context context) {"
        errorLine2="                                                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="30"
            column="66"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final SQLiteDatabase db) {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="42"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion) {"
        errorLine2="                                ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="48"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onDowngrade(SQLiteDatabase db) {"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="55"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getProperty(String key) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="61"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getProperty(String key) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="61"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getProperty(String key, String defaultValue) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="65"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getProperty(String key, String defaultValue) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="65"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getProperty(String key, String defaultValue) {"
        errorLine2="                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="65"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void storeProperty(String key, String value) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="83"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void storeProperty(String key, String value) {"
        errorLine2="                                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/PropertiesStore.java"
            line="83"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="117"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="207"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="207"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,"
        errorLine2="                                                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="207"
            column="67"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="208"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                         ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="228"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                                                   ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="228"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onServiceDisconnected(ComponentName name) {"
        errorLine2="                                      ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="233"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;List&lt;Song>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="283"
            column="66"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onLoadFinished(@NonNull final Loader&lt;List&lt;Song>> loader, final List&lt;Song> data) {"
        errorLine2="                                                                               ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/QueueFragment.java"
            line="289"
            column="80"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public QueueLoader(final Context context) {"
        errorLine2="                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/QueueLoader.java"
            line="46"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Song> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/QueueLoader.java"
            line="51"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeQueueCursor(final Context context) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/QueueLoader.java"
            line="100"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeQueueCursor(final Context context) {"
        errorLine2="                                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/QueueLoader.java"
            line="100"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public QueueSongAdapter(final FragmentActivity context, final int layoutId, final long sourceId,"
        errorLine2="                                  ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="90"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                            final Config.IdType sourceType,"
        errorLine2="                                  ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="91"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                            final Consumer&lt;Integer> onItemClickListener) {"
        errorLine2="                                  ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="92"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected boolean showNowPlayingIndicator(final Song song) {"
        errorLine2="                                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="111"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setCurrentlyPlayingTrack(MusicPlaybackTrack currentTrack) {"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="184"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IListener listener) {"
        errorLine2="                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="207"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Song getItem(int position) {"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="211"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setData(List&lt;Song> song) {"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/QueueSongAdapter.java"
            line="215"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected SmartPlaylistType getSmartPlaylistType() {"
        errorLine2="              ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="55"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(TreeSet&lt;Integer> set) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="60"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;SectionListContainer&lt;Song>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="66"
            column="82"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setupNoResultsContainer(NoResultsContainer empty) {"
        errorLine2="                                        ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="84"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                 ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="92"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="92"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="92"
            column="61"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                   Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="93"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected SongListAdapter createAdapter() {"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/RecentFragment.java"
            line="114"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public RecentStore(final Context context) {"
        errorLine2="                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/RecentStore.java"
            line="38"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final SQLiteDatabase db) {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/RecentStore.java"
            line="42"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onDowngrade(SQLiteDatabase db) {"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/RecentStore.java"
            line="48"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized RecentStore getInstance(final Context context) {"
        errorLine2="                               ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/RecentStore.java"
            line="58"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized RecentStore getInstance(final Context context) {"
        errorLine2="                                                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/RecentStore.java"
            line="58"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Cursor queryRecentIds(final String limit) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/RecentStore.java"
            line="130"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Cursor queryRecentIds(final String limit) {"
        errorLine2="                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/RecentStore.java"
            line="130"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static RenamePlaylist getInstance(final Long id) {"
        errorLine2="                  ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/RenamePlaylist.java"
            line="49"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static RenamePlaylist getInstance(final Long id) {"
        errorLine2="                                                   ~~~~">
        <location
            file="src/org/lineageos/eleven/menu/RenamePlaylist.java"
            line="49"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void initialize(final Bundle savedInstanceState) {"
        errorLine2="                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/RenamePlaylist.java"
            line="64"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void afterTextChanged(Editable editable) {"
        errorLine2="                                 ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/menu/RenamePlaylist.java"
            line="105"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public RepeatButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatButton.java"
            line="35"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public RepeatButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                     ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatButton.java"
            line="35"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onClick(final View v) {"
        errorLine2="                              ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatButton.java"
            line="40"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public RepeatingImageButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="53"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public RepeatingImageButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                             ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="53"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onClick(final View view) {"
        errorLine2="                              ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="64"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setRepeatListener(final RepeatListener l) {"
        errorLine2="                                        ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="79"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onTouchEvent(final MotionEvent event) {"
        errorLine2="                                      ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="95"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onKeyDown(final int keyCode, final KeyEvent event) {"
        errorLine2="                                                      ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="108"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onKeyUp(final int keyCode, final KeyEvent event) {"
        errorLine2="                                                    ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="123"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onRepeat(View v, long duration, int repeatCount);"
        errorLine2="                      ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/RepeatingImageButton.java"
            line="178"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public SimpleListLoader(Context context) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/sectionadapter/SectionCreator.java"
            line="44"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SectionCreator(Context context, SimpleListLoader&lt;T> loader,"
        errorLine2="                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/sectionadapter/SectionCreator.java"
            line="66"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SectionCreator(Context context, SimpleListLoader&lt;T> loader,"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/sectionadapter/SectionCreator.java"
            line="66"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                          SectionCreatorUtils.IItemCompare&lt;T> comparator) {"
        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/sectionadapter/SectionCreator.java"
            line="67"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SectionListContainer&lt;T> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/sectionadapter/SectionCreator.java"
            line="74"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public Section(final SectionType type, final String identifier) {"
        errorLine2="                             ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="43"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public Section(final SectionType type, final String identifier) {"
        errorLine2="                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="43"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionHeader(T first, T second, List&lt;T> items, int firstIndex) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="67"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionHeader(T first, T second, List&lt;T> items, int firstIndex) {"
        errorLine2="                                                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="67"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionHeader(T first, T second) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="71"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionFooter(T first, T second, List&lt;T> items, int firstIndex) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="86"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionFooter(T first, T second, List&lt;T> items, int firstIndex) {"
        errorLine2="                                                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="86"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionFooter(T first, T second) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="90"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createHeaderLabel(T item) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="100"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createFooterLabel(T item) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="110"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public LocalizedCompare(Context context) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="130"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionHeader(T first, T second) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="136"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createHeaderLabel(T item) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="153"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        protected String createHeaderLabel(final String label) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="158"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        protected String createHeaderLabel(final String label) {"
        errorLine2="                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="158"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public abstract String getString(T item);"
        errorLine2="                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="165"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionHeader(T first, T second) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="180"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createHeaderLabel(T item) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="189"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public BoundedIntCompare(Context context) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="206"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionHeader(T first, T second) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="213"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        protected String createLabel(int stringId, T item) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="222"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createHeaderLabel(T item) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="227"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public DurationCompare(Context context) {"
        errorLine2="                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="240"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public NumberOfSongsCompare(Context context) {"
        errorLine2="                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="276"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public NumberOfAlbumsCompare(Context context) {"
        errorLine2="                                     ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="300"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public String createSectionHeader(T first, T second) {"
        errorLine2="               ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="314"
            column="16"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        protected String createLabel(int stringId, T item) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="337"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;T> TreeMap&lt;Integer, Section> createSections(final List&lt;T> list,"
        errorLine2="                      ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="355"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;T> TreeMap&lt;Integer, Section> createSections(final List&lt;T> list,"
        errorLine2="                                                                     ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="355"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                                               final IItemCompare&lt;T> comparator) {"
        errorLine2="                                                                     ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="356"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static IItemCompare&lt;Artist> createArtistComparison(final Context context) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="398"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static IItemCompare&lt;Artist> createArtistComparison(final Context context) {"
        errorLine2="                                                                    ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="398"
            column="69"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static IItemCompare&lt;Song> createSongComparison(final Context context) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="448"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static IItemCompare&lt;Song> createSongComparison(final Context context) {"
        errorLine2="                                                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SectionCreatorUtils.java"
            line="448"
            column="65"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SectionListContainer(final TreeMap&lt;Integer, SectionCreatorUtils.Section> sections,"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/sectionadapter/SectionListContainer.java"
            line="33"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                final List&lt;T> results) {"
        errorLine2="                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/sectionadapter/SectionListContainer.java"
            line="34"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SectionSeparatorItemDecoration(Context context,"
        errorLine2="                                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SectionSeparatorItemDecoration.java"
            line="49"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                          TreeMap&lt;Integer, SectionCreatorUtils.Section> items) {"
        errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SectionSeparatorItemDecoration.java"
            line="50"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="52"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onOptionsItemSelected(final MenuItem item) {"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="65"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onCreate(final Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="85"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onCreatePreferences(Bundle bundle, String rootKey) {"
        errorLine2="                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="125"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onCreatePreferences(Bundle bundle, String rootKey) {"
        errorLine2="                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="125"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                             ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="147"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onServiceConnected(final ComponentName name, final IBinder service) {"
        errorLine2="                                                                       ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="147"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onServiceDisconnected(ComponentName name) {"
        errorLine2="                                          ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="152"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {"
        errorLine2="                                              ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="157"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {"
        errorLine2="                                                                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SettingsActivity.java"
            line="157"
            column="84"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ShakeDetector(Listener listener) {"
        errorLine2="                         ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ShakeDetector.java"
            line="61"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean start(SensorManager sensorManager) {"
        errorLine2="                         ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ShakeDetector.java"
            line="71"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onSensorChanged(SensorEvent event) {"
        errorLine2="                                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ShakeDetector.java"
            line="102"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onAccuracyChanged(Sensor sensor, int accuracy) {"
        errorLine2="                                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/ShakeDetector.java"
            line="289"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ShuffleButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ShuffleButton.java"
            line="31"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ShuffleButton(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                      ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ShuffleButton.java"
            line="31"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onClick(final View v) {"
        errorLine2="                              ~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ShuffleButton.java"
            line="36"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SimpleBitmapWorkerTask(final String key, final ImageView imageView,"
        errorLine2="                                        ~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="42"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SimpleBitmapWorkerTask(final String key, final ImageView imageView,"
        errorLine2="                                                          ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="42"
            column="59"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                  final ImageType imageType, final Drawable fromDrawable,"
        errorLine2="                                        ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="43"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                  final ImageType imageType, final Drawable fromDrawable,"
        errorLine2="                                                                   ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="43"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                  final Context context, final boolean scaleImgToView) {"
        errorLine2="                                        ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="44"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable doInBackground(final String... params) {"
        errorLine2="              ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="49"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected TransitionDrawable doInBackground(final String... params) {"
        errorLine2="                                                      ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="49"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onPostExecute(TransitionDrawable transitionDrawable) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/cache/SimpleBitmapWorkerTask.java"
            line="65"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Panel mTargetNavigatePanel;"
        errorLine2="              ~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="61"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void init(final Bundle savedInstanceState) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="93"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void showPanel(Panel panel) {"
        errorLine2="                          ~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="218"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Panel getCurrentPanel() {"
        errorLine2="           ~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="261"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected AudioPlayerFragment getAudioPlayerFragment() {"
        errorLine2="              ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="292"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected QueueFragment getQueueFragment() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="297"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void setupQueueHeaderBar(final View.OnClickListener headerClickListener) {"
        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java"
            line="316"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onPanelSlide(View panel, float slideOffset);"
        errorLine2="                          ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="242"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onPanelCollapsed(View panel);"
        errorLine2="                              ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="249"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onPanelExpanded(View panel);"
        errorLine2="                             ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="256"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onPanelAnchored(View panel);"
        errorLine2="                             ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="264"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onPanelHidden(View panel);"
        errorLine2="                           ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="272"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onPanelSlide(View panel, float slideOffset) {"
        errorLine2="                                 ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="281"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onPanelCollapsed(View panel) {"
        errorLine2="                                     ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="285"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onPanelExpanded(View panel) {"
        errorLine2="                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="289"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onPanelAnchored(View panel) {"
        errorLine2="                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="293"
            column="37"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onPanelHidden(View panel) {"
        errorLine2="                                  ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="297"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SlidingUpPanelLayout(Context context) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="301"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SlidingUpPanelLayout(Context context, AttributeSet attrs) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="305"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SlidingUpPanelLayout(Context context, AttributeSet attrs) {"
        errorLine2="                                                 ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="305"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SlidingUpPanelLayout(Context context, AttributeSet attrs, int defStyle) {"
        errorLine2="                                ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="309"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SlidingUpPanelLayout(Context context, AttributeSet attrs, int defStyle) {"
        errorLine2="                                                 ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="309"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPanelSlideListener(PanelSlideListener listener) {"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="442"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setDragView(View dragView) {"
        errorLine2="                            ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="451"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onInterceptTouchEvent(MotionEvent ev) {"
        errorLine2="                                         ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="732"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onTouchEvent(MotionEvent ev) {"
        errorLine2="                                ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="776"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected boolean drawChild(Canvas canvas, View child, long drawingTime) {"
        errorLine2="                                ~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="908"
            column="33"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected boolean drawChild(Canvas canvas, View child, long drawingTime) {"
        errorLine2="                                               ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="908"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void draw(Canvas c) {"
        errorLine2="                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="970"
            column="22"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ViewGroup.LayoutParams generateDefaultLayoutParams() {"
        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="997"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {"
        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1002"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {"
        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1002"
            column="59"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {"
        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1009"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1014"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {"
        errorLine2="                                                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1014"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Parcelable onSaveInstanceState() {"
        errorLine2="           ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1019"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onRestoreInstanceState(Parcelable state) {"
        errorLine2="                                       ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1029"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public LayoutParams(android.view.ViewGroup.LayoutParams source) {"
        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1147"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public LayoutParams(MarginLayoutParams source) {"
        errorLine2="                            ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1151"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public LayoutParams(Context c, AttributeSet attrs) {"
        errorLine2="                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1155"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public LayoutParams(Context c, AttributeSet attrs) {"
        errorLine2="                                       ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/SlidingUpPanelLayout.java"
            line="1155"
            column="40"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="56"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                             ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="56"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                                      ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="56"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                             Bundle savedInstanceState) {"
        errorLine2="                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="57"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Config.IdType getFragmentSourceType() {"
        errorLine2="              ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="63"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreateOptionsMenu(@NonNull final Menu menu, final MenuInflater inflater) {"
        errorLine2="                                                                    ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="68"
            column="69"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean onOptionsItemSelected(final MenuItem item) {"
        errorLine2="                                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="89"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PagerAdapter.MusicFragments getMusicFragmentParent() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="130"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected abstract SmartPlaylistType getSmartPlaylistType();"
        errorLine2="                       ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/SmartPlaylistFragment.java"
            line="139"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String mBucketLabel;"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Song.java"
            line="70"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Song(final long songId, final String songName, final String artistName,"
        errorLine2="                                         ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Song.java"
            line="82"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Song(final long songId, final String songName, final String artistName,"
        errorLine2="                                                                ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Song.java"
            line="82"
            column="65"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                final String albumName, final long albumId, final int duration, final int year) {"
        errorLine2="                      ~~~~~~">
        <location
            file="src/org/lineageos/eleven/model/Song.java"
            line="83"
            column="23"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;SectionListContainer&lt;Song>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/SongFragment.java"
            line="54"
            column="82"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public LoaderManager getFragmentLoaderManager() {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/SongFragment.java"
            line="79"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongListAdapter(final FragmentActivity context, final int layoutId, final long sourceId,"
        errorLine2="                                 ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="94"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                           final Config.IdType sourceType,"
        errorLine2="                                 ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="95"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                           final Consumer&lt;Integer> onItemClickListener) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="96"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected boolean showNowPlayingIndicator(final Song song, final int position) {"
        errorLine2="                                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="116"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setPopupMenuClickedListener(IListener listener) {"
        errorLine2="                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="214"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setCurrentlyPlayingTrack(MusicPlaybackTrack currentTrack) {"
        errorLine2="                                         ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="223"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public long[] getSongIds() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="248"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Song getItem(int position) {"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="257"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setData(List&lt;Song> songs) {"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/adapters/SongListAdapter.java"
            line="261"
            column="25"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongLoader(final Context context) {"
        errorLine2="                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="59"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongLoader(final Context context, final String selection) {"
        errorLine2="                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="67"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongLoader(final Context context, final String selection) {"
        errorLine2="                                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="67"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public List&lt;Song> loadInBackground() {"
        errorLine2="           ~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="74"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Cursor getCursor() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="129"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeSongCursor(final Context context, final String selection) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="159"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeSongCursor(final Context context, final String selection) {"
        errorLine2="                                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="159"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeSongCursor(final Context context, final String selection) {"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="159"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeSongCursor(final Context context, final String selection,"
        errorLine2="                  ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="173"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeSongCursor(final Context context, final String selection,"
        errorLine2="                                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="173"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Cursor makeSongCursor(final Context context, final String selection,"
        errorLine2="                                                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SongLoader.java"
            line="173"
            column="70"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongPlayCount(final Context context) {"
        errorLine2="                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="64"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onCreate(final SQLiteDatabase db) {"
        errorLine2="                               ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="71"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void onDowngrade(SQLiteDatabase db) {"
        errorLine2="                            ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="96"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized SongPlayCount getInstance(final Context context) {"
        errorLine2="                               ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="106"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static synchronized SongPlayCount getInstance(final Context context) {"
        errorLine2="                                                               ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="106"
            column="64"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Cursor getTopPlayedResults(int numResults) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="267"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public long[] getTopPlayedResultsForList(long[] ids) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="283"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public long[] getTopPlayedResultsForList(long[] ids) {"
        errorLine2="                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/provider/SongPlayCount.java"
            line="283"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Song mSong;"
        errorLine2="              ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="31"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongPopupMenuHelper(Activity activity, FragmentManager fragmentManager) {"
        errorLine2="                               ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="33"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SongPopupMenuHelper(Activity activity, FragmentManager fragmentManager) {"
        errorLine2="                                                  ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="33"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public abstract Song getSong(int position);"
        errorLine2="                    ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="37"
            column="21"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public PopupMenuHelper.PopupMenuType onPreparePopupMenu(int position) {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="40"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected long[] getIdList() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="56"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected String getArtistName() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="61"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(PopupMenuType type, TreeSet&lt;Integer> set) {"
        errorLine2="                                 ~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="72"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void updateMenuIds(PopupMenuType type, TreeSet&lt;Integer> set) {"
        errorLine2="                                                     ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SongPopupMenuHelper.java"
            line="72"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SortedCursor(final Cursor cursor, final long[] order, final String columnName,"
        errorLine2="                              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="49"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SortedCursor(final Cursor cursor, final long[] order, final String columnName,"
        errorLine2="                                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="49"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SortedCursor(final Cursor cursor, final long[] order, final String columnName,"
        errorLine2="                                                                       ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="49"
            column="72"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                        final List&lt;?> extraData) {"
        errorLine2="                              ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="50"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ArrayList&lt;Long> getMissingIds() {"
        errorLine2="           ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="108"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Collection&lt;Long> getExtraIds() {"
        errorLine2="           ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="115"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Object getExtraData() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="122"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String[] getColumnNames() {"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="140"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String getString(int column) {"
        errorLine2="           ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/SortedCursor.java"
            line="145"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareFrame(Context context, AttributeSet attrs) {"
        errorLine2="                       ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareFrame.java"
            line="22"
            column="24"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareFrame(Context context, AttributeSet attrs) {"
        errorLine2="                                        ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareFrame.java"
            line="22"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareImageView(final Context context, final AttributeSet attrs) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareImageView.java"
            line="35"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareImageView(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                        ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareImageView.java"
            line="35"
            column="57"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareView(final Context context, final AttributeSet attrs) {"
        errorLine2="                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareView.java"
            line="38"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareView(final Context context, final AttributeSet attrs) {"
        errorLine2="                                                   ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareView.java"
            line="38"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareViewPager(Context context, AttributeSet attrs) {"
        errorLine2="                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareViewPager.java"
            line="33"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public SquareViewPager(Context context, AttributeSet attrs) {"
        errorLine2="                                            ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/SquareViewPager.java"
            line="33"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public synchronized void initialize(final MediaPlayer player, final File f) {"
        errorLine2="                                              ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SrtManager.java"
            line="74"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public synchronized void initialize(final MediaPlayer player, final File f) {"
        errorLine2="                                                                        ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SrtManager.java"
            line="74"
            column="73"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean handleMessage(Message msg) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SrtManager.java"
            line="194"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public abstract void onTimedText(String txt);"
        errorLine2="                                     ~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SrtManager.java"
            line="207"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ArrayList&lt;SrtEntry> getSrtEntries(File f) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SrtParser.java"
            line="49"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ArrayList&lt;SrtEntry> getSrtEntries(File f) {"
        errorLine2="                                                    ~~~~">
        <location
            file="src/org/lineageos/eleven/utils/SrtParser.java"
            line="49"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected SmartPlaylistType getSmartPlaylistType() {"
        errorLine2="              ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="55"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Loader&lt;SectionListContainer&lt;Song>> onCreateLoader(final int id, final Bundle args) {"
        errorLine2="                                                                                 ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="61"
            column="82"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected SongListAdapter createAdapter() {"
        errorLine2="              ~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="71"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                 ~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="80"
            column="18"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                   ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="80"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public final View onCreateView(LayoutInflater inflater, ViewGroup container,"
        errorLine2="                                                            ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="80"
            column="61"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                   Bundle savedInstanceState) {"
        errorLine2="                                   ~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="81"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public TopTracksAdapter(final FragmentActivity context, final int layoutId,"
        errorLine2="                                      ~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="96"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="                                final Consumer&lt;Integer> onItemClickListener) {"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="97"
            column="39"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setupNoResultsContainer(NoResultsContainer empty) {"
        errorLine2="                                        ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/ui/fragments/profile/TopTracksFragment.java"
            line="110"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public TopTracksLoader(final Context context, QueryType type) {"
        errorLine2="                                 ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="44"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public TopTracksLoader(final Context context, QueryType type) {"
        errorLine2="                                                  ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="44"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected Cursor getCursor() {"
        errorLine2="              ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="51"
            column="15"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static SortedCursor makeTopTracksCursor(final Context context) {"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="85"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static SortedCursor makeTopTracksCursor(final Context context) {"
        errorLine2="                                                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="85"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static SortedCursor makeRecentTracksCursor(final Context context) {"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="101"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static SortedCursor makeRecentTracksCursor(final Context context) {"
        errorLine2="                                                            ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="101"
            column="61"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static SortedCursor makeSortedCursor(final Context context, final Cursor cursor,"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="118"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static SortedCursor makeSortedCursor(final Context context, final Cursor cursor,"
        errorLine2="                                                      ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="118"
            column="55"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static SortedCursor makeSortedCursor(final Context context, final Cursor cursor,"
        errorLine2="                                                                             ~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/TopTracksLoader.java"
            line="118"
            column="78"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {"
        errorLine2="                                          ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="147"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onViewCaptured(View capturedChild, int activePointerId) {"
        errorLine2="                                   ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="159"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public void onViewReleased(View releasedChild, float xVel, float yVel) {"
        errorLine2="                                   ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="182"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int getViewHorizontalDragRange(View child) {"
        errorLine2="                                              ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="247"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int getViewVerticalDragRange(View child) {"
        errorLine2="                                            ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="258"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public abstract boolean tryCaptureView(View child, int pointerId);"
        errorLine2="                                               ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="278"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int clampViewPositionHorizontal(View child, int left, int dx) {"
        errorLine2="                                               ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="291"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        public int clampViewPositionVertical(View child, int top, int dy) {"
        errorLine2="                                             ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="305"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ViewDragHelper create(ViewGroup forParent, Callback cb) {"
        errorLine2="                  ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="327"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ViewDragHelper create(ViewGroup forParent, Callback cb) {"
        errorLine2="                                        ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="327"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ViewDragHelper create(ViewGroup forParent, Callback cb) {"
        errorLine2="                                                             ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="327"
            column="62"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ViewDragHelper create(ViewGroup forParent, float sensitivity, Callback cb) {"
        errorLine2="                  ~~~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="340"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ViewDragHelper create(ViewGroup forParent, float sensitivity, Callback cb) {"
        errorLine2="                                        ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="340"
            column="41"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ViewDragHelper create(ViewGroup forParent, float sensitivity, Callback cb) {"
        errorLine2="                                                                                ~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="340"
            column="81"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void captureChildView(View childView, int activePointerId) {"
        errorLine2="                                 ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="403"
            column="34"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean smoothSlideViewTo(View child, int finalLeft, int finalTop) {"
        errorLine2="                                     ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="467"
            column="38"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean shouldInterceptTouchEvent(MotionEvent ev) {"
        errorLine2="                                             ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="785"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void processTouchEvent(MotionEvent ev) {"
        errorLine2="                                  ~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="895"
            column="35"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public boolean isViewUnder(View view, int x, int y) {"
        errorLine2="                               ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="1164"
            column="32"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public View findTopChildUnder(int x, int y) {"
        errorLine2="           ~~~~">
        <location
            file="src/org/lineageos/eleven/slidinguppanel/ViewDragHelper.java"
            line="1182"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabStrip(Context context) {"
        errorLine2="                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabStrip.java"
            line="38"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabStrip(Context context, AttributeSet attrs) {"
        errorLine2="                             ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabStrip.java"
            line="42"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabStrip(Context context, AttributeSet attrs) {"
        errorLine2="                                              ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabStrip.java"
            line="42"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onDraw(Canvas canvas) {"
        errorLine2="                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabStrip.java"
            line="71"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabs(Context context) {"
        errorLine2="                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabs.java"
            line="115"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabs(Context context, AttributeSet attrs) {"
        errorLine2="                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabs.java"
            line="119"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabs(Context context, AttributeSet attrs) {"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabs.java"
            line="119"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabs(Context context, AttributeSet attrs, int defStyle) {"
        errorLine2="                         ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabs.java"
            line="123"
            column="26"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ViewPagerTabs(Context context, AttributeSet attrs, int defStyle) {"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabs.java"
            line="123"
            column="43"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setViewPager(ViewPager viewPager) {"
        errorLine2="                             ~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/ViewPagerTabs.java"
            line="144"
            column="30"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public VisualizerView(Context context, AttributeSet attrs, int defStyle) {"
        errorLine2="                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="124"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public VisualizerView(Context context, AttributeSet attrs, int defStyle) {"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="124"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public VisualizerView(Context context, AttributeSet attrs) {"
        errorLine2="                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="128"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public VisualizerView(Context context, AttributeSet attrs) {"
        errorLine2="                                           ~~~~~~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="128"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public VisualizerView(Context context) {"
        errorLine2="                          ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="132"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    protected void onDraw(Canvas canvas) {"
        errorLine2="                          ~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="161"
            column="27"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void initialize(Context context) {"
        errorLine2="                           ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/widgets/VisualizerView.java"
            line="169"
            column="28"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public WrappedAsyncTaskLoader(Context context) {"
        errorLine2="                                  ~~~~~~~">
        <location
            file="src/org/lineageos/eleven/loaders/WrappedAsyncTaskLoader.java"
            line="38"
            column="35"/>
    </issue>

</issues>
