<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.3.0-dev" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-dev">

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="            return String.format("
        errorLine2="                   ^">
        <location
            file="src/main/java/com/android/tools/perflib/heap/memoryanalyzer/DuplicatedBitmapAnalyzerTask.java"
            line="150"
            column="20"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="            return String.format(&quot;%d instances: \&quot;%s\&quot;&quot;, mOffender.getOffenders().size(),"
        errorLine2="                   ^">
        <location
            file="src/main/java/com/android/tools/perflib/heap/memoryanalyzer/DuplicatedStringsAnalyzerTask.java"
            line="92"
            column="20"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="                name = String.format(&quot;%1$s-%2$d&quot;, name, id);"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/com/android/tools/perflib/vmtrace/VmTraceData.java"
            line="78"
            column="24"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="                mThreads.put(threadId, String.format(&quot;Thread id: %1$d&quot;, threadId));"
        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/com/android/tools/perflib/vmtrace/VmTraceData.java"
            line="286"
            column="40"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="                    String.format("
        errorLine2="                    ^">
        <location
            file="src/main/java/com/android/tools/perflib/vmtrace/VmTraceParser.java"
            line="390"
            column="21"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="                    String.format("
        errorLine2="                    ^">
        <location
            file="src/main/java/com/android/tools/perflib/vmtrace/VmTraceParser.java"
            line="429"
            column="21"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="                        String.format("
        errorLine2="                        ^">
        <location
            file="src/main/java/com/android/tools/perflib/vmtrace/VmTraceParser.java"
            line="583"
            column="25"/>
    </issue>

</issues>
