gitextract_i4svht9p/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── scripts/ │ │ └── s3-deploy.py │ └── workflows/ │ ├── continuous_integration.yml │ └── main.yml ├── .gitignore ├── .hgignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── annotations/ │ ├── annotations.pro │ ├── build.gradle │ └── src/ │ └── proguard/ │ └── annotation/ │ ├── Keep.java │ ├── KeepApplication.java │ ├── KeepClassMemberNames.java │ ├── KeepClassMembers.java │ ├── KeepGettersSetters.java │ ├── KeepImplementations.java │ ├── KeepName.java │ ├── KeepPublicClassMemberNames.java │ ├── KeepPublicClassMembers.java │ ├── KeepPublicGettersSetters.java │ ├── KeepPublicImplementations.java │ ├── KeepPublicProtectedClassMemberNames.java │ └── KeepPublicProtectedClassMembers.java ├── ant/ │ ├── build.gradle │ └── src/ │ └── proguard/ │ └── ant/ │ ├── ClassPathElement.java │ ├── ClassSpecificationElement.java │ ├── ConfigurationElement.java │ ├── ConfigurationTask.java │ ├── FilterElement.java │ ├── KeepSpecificationElement.java │ ├── MemberSpecificationElement.java │ ├── ProGuardTask.java │ ├── package.html │ └── task.properties ├── base/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── dprotect/ │ │ │ │ ├── ArithmeticObfuscationClassSpecification.java │ │ │ │ ├── CFObfuscationClassSpecification.java │ │ │ │ ├── ClassObfuSpecVisitorFactory.java │ │ │ │ ├── Configuration.java │ │ │ │ ├── ConfigurationConstants.java │ │ │ │ ├── ConfigurationParser.java │ │ │ │ ├── ConstantObfuscationClassSpecification.java │ │ │ │ ├── DProtect.java │ │ │ │ ├── ObfuscationClassSpecification.java │ │ │ │ ├── deobfuscation/ │ │ │ │ │ ├── Deobfuscator.java │ │ │ │ │ └── strings/ │ │ │ │ │ └── XoredStrings.java │ │ │ │ ├── obfuscation/ │ │ │ │ │ ├── CodeObfuscator.java │ │ │ │ │ ├── Marker.java │ │ │ │ │ ├── arithmetic/ │ │ │ │ │ │ ├── ArithmeticObfuscationFilter.java │ │ │ │ │ │ ├── ArithmeticObfuscationInfo.java │ │ │ │ │ │ ├── ArithmeticObfuscationMarker.java │ │ │ │ │ │ ├── MBANormalizer.java │ │ │ │ │ │ ├── MBAObfuscationAdd.java │ │ │ │ │ │ ├── MBAObfuscationAnd.java │ │ │ │ │ │ ├── MBAObfuscationOr.java │ │ │ │ │ │ ├── MBAObfuscationSub.java │ │ │ │ │ │ └── MBAObfuscationXor.java │ │ │ │ │ ├── constants/ │ │ │ │ │ │ ├── ConstantFieldMarker.java │ │ │ │ │ │ ├── ConstantObfuscationInfo.java │ │ │ │ │ │ ├── ConstantObfuscationMarker.java │ │ │ │ │ │ └── ConstantsObfuscator.java │ │ │ │ │ ├── controlflow/ │ │ │ │ │ │ ├── ControlFlowObfuscation.java │ │ │ │ │ │ ├── ControlFlowObfuscationInfo.java │ │ │ │ │ │ └── ControlFlowObfuscationMarker.java │ │ │ │ │ ├── info/ │ │ │ │ │ │ ├── ObfuscationInfo.java │ │ │ │ │ │ └── ObfuscationInfoSetter.java │ │ │ │ │ └── strings/ │ │ │ │ │ ├── StringFieldMarker.java │ │ │ │ │ ├── StringObfuscationMarker.java │ │ │ │ │ └── StringObfuscator.java │ │ │ │ └── runtime/ │ │ │ │ ├── strings/ │ │ │ │ │ └── StringEncoding.java │ │ │ │ └── util/ │ │ │ │ ├── Helpers.java │ │ │ │ └── Loader.java │ │ │ └── proguard/ │ │ │ ├── AfterInitConfigurationVerifier.java │ │ │ ├── AppView.java │ │ │ ├── ArgumentWordReader.java │ │ │ ├── AssumeNoSideEffectsChecker.java │ │ │ ├── ClassMemberChecker.java │ │ │ ├── ClassPath.java │ │ │ ├── ClassPathEntry.java │ │ │ ├── ClassSpecification.java │ │ │ ├── ClassSpecificationVisitorFactory.java │ │ │ ├── Configuration.java │ │ │ ├── ConfigurationConstants.java │ │ │ ├── ConfigurationParser.java │ │ │ ├── ConfigurationVerifier.java │ │ │ ├── ConfigurationWriter.java │ │ │ ├── DataEntryReaderFactory.java │ │ │ ├── DataEntryWriterFactory.java │ │ │ ├── DescriptorKeepChecker.java │ │ │ ├── Dumper.java │ │ │ ├── DuplicateClassPrinter.java │ │ │ ├── DuplicateResourceFilePrinter.java │ │ │ ├── FileWordReader.java │ │ │ ├── FullyQualifiedClassNameChecker.java │ │ │ ├── GPL.java │ │ │ ├── GetAnnotationChecker.java │ │ │ ├── GetEnclosingClassChecker.java │ │ │ ├── GetEnclosingMethodChecker.java │ │ │ ├── GetSignatureChecker.java │ │ │ ├── Initializer.java │ │ │ ├── InputReader.java │ │ │ ├── KeepClassMemberChecker.java │ │ │ ├── KeepClassSpecification.java │ │ │ ├── KeepClassSpecificationVisitorFactory.java │ │ │ ├── KotlinMetadataAdapter.java │ │ │ ├── LibraryKeepChecker.java │ │ │ ├── LineWordReader.java │ │ │ ├── MemberSpecification.java │ │ │ ├── MemberValueSpecification.java │ │ │ ├── OutputWriter.java │ │ │ ├── ParseException.java │ │ │ ├── ProGuard.java │ │ │ ├── SeedPrinter.java │ │ │ ├── SubclassedClassFilter.java │ │ │ ├── Targeter.java │ │ │ ├── UpToDateChecker.java │ │ │ ├── WordReader.java │ │ │ ├── backport/ │ │ │ │ ├── AbstractAPIConverter.java │ │ │ │ ├── Backporter.java │ │ │ │ ├── DefaultInterfaceMethodConverter.java │ │ │ │ ├── JSR310Converter.java │ │ │ │ ├── LambdaExpression.java │ │ │ │ ├── LambdaExpressionCollector.java │ │ │ │ ├── LambdaExpressionConverter.java │ │ │ │ ├── StaticInterfaceMethodConverter.java │ │ │ │ ├── StreamSupportConverter.java │ │ │ │ └── StringConcatenationConverter.java │ │ │ ├── classfile/ │ │ │ │ ├── ClassMemberPair.java │ │ │ │ ├── pass/ │ │ │ │ │ └── PrimitiveArrayConstantIntroducer.java │ │ │ │ └── visitor/ │ │ │ │ └── InjectedClassFilter.java │ │ │ ├── configuration/ │ │ │ │ ├── ConfigurationLogger.java │ │ │ │ ├── ConfigurationLoggingAdder.java │ │ │ │ ├── ConfigurationLoggingInstructionSequenceConstants.java │ │ │ │ ├── ConfigurationLoggingInstructionSequenceReplacer.java │ │ │ │ ├── ConfigurationLoggingInstructionSequencesReplacer.java │ │ │ │ └── InitialStateInfo.java │ │ │ ├── evaluation/ │ │ │ │ └── AssumeClassSpecificationVisitorFactory.java │ │ │ ├── fixer/ │ │ │ │ └── kotlin/ │ │ │ │ ├── KotlinAnnotationCounter.java │ │ │ │ └── KotlinAnnotationFlagFixer.java │ │ │ ├── io/ │ │ │ │ ├── ClassMapDataEntryReplacer.java │ │ │ │ ├── ExtraDataEntryNameMap.java │ │ │ │ ├── ExtraDataEntryReader.java │ │ │ │ ├── KotlinModuleRewriter.java │ │ │ │ └── UniqueDataEntryWriter.java │ │ │ ├── logging/ │ │ │ │ └── Logging.java │ │ │ ├── mark/ │ │ │ │ └── Marker.java │ │ │ ├── obfuscate/ │ │ │ │ ├── AttributeShrinker.java │ │ │ │ ├── AttributeUsageMarker.java │ │ │ │ ├── ClassNameAdapterFunction.java │ │ │ │ ├── ClassObfuscator.java │ │ │ │ ├── ClassRenamer.java │ │ │ │ ├── DictionaryNameFactory.java │ │ │ │ ├── MapCleaner.java │ │ │ │ ├── MappingKeeper.java │ │ │ │ ├── MappingPrinter.java │ │ │ │ ├── MappingProcessor.java │ │ │ │ ├── MappingReader.java │ │ │ │ ├── MemberNameCleaner.java │ │ │ │ ├── MemberNameCollector.java │ │ │ │ ├── MemberNameConflictFixer.java │ │ │ │ ├── MemberObfuscator.java │ │ │ │ ├── MemberSpecialNameFilter.java │ │ │ │ ├── MultiMappingProcessor.java │ │ │ │ ├── NameFactory.java │ │ │ │ ├── NameFactoryResetter.java │ │ │ │ ├── NameMarker.java │ │ │ │ ├── NameObfuscationReferenceFixer.java │ │ │ │ ├── NewMemberNameFilter.java │ │ │ │ ├── NumericNameFactory.java │ │ │ │ ├── ObfuscationPreparation.java │ │ │ │ ├── Obfuscator.java │ │ │ │ ├── OriginalClassNameFilter.java │ │ │ │ ├── ParameterNameMarker.java │ │ │ │ ├── PrefixingNameFactory.java │ │ │ │ ├── RenamedFlagSetter.java │ │ │ │ ├── ResourceFileNameAdapter.java │ │ │ │ ├── ResourceFileNameObfuscator.java │ │ │ │ ├── ResourceJavaReferenceFixer.java │ │ │ │ ├── SimpleNameFactory.java │ │ │ │ ├── SourceFileRenamer.java │ │ │ │ ├── SpecialNameFactory.java │ │ │ │ ├── UniqueMemberNameFactory.java │ │ │ │ ├── kotlin/ │ │ │ │ │ ├── KotlinAliasNameObfuscator.java │ │ │ │ │ ├── KotlinAliasReferenceFixer.java │ │ │ │ │ ├── KotlinCallableReferenceFixer.java │ │ │ │ │ ├── KotlinCompanionEqualizer.java │ │ │ │ │ ├── KotlinDefaultImplsMethodNameEqualizer.java │ │ │ │ │ ├── KotlinDefaultMethodNameEqualizer.java │ │ │ │ │ ├── KotlinIntrinsicsReplacementSequences.java │ │ │ │ │ ├── KotlinModuleFixer.java │ │ │ │ │ ├── KotlinModuleNameObfuscator.java │ │ │ │ │ ├── KotlinMultiFileFacadeFixer.java │ │ │ │ │ ├── KotlinObjectFixer.java │ │ │ │ │ ├── KotlinPropertyNameObfuscator.java │ │ │ │ │ ├── KotlinPropertyRenamer.java │ │ │ │ │ ├── KotlinSourceDebugExtensionAttributeObfuscator.java │ │ │ │ │ ├── KotlinSyntheticClassFixer.java │ │ │ │ │ ├── KotlinSyntheticToStringObfuscator.java │ │ │ │ │ ├── KotlinUnsupportedExceptionReplacementSequences.java │ │ │ │ │ ├── KotlinValueParameterNameShrinker.java │ │ │ │ │ └── KotlinValueParameterUsageMarker.java │ │ │ │ ├── obfuscate/ │ │ │ │ │ └── package.html │ │ │ │ └── util/ │ │ │ │ ├── InstructionSequenceObfuscator.java │ │ │ │ └── ReplacementSequences.java │ │ │ ├── optimize/ │ │ │ │ ├── BootstrapMethodArgumentShrinker.java │ │ │ │ ├── CalledMemberVisitor.java │ │ │ │ ├── ChangedCodePrinter.java │ │ │ │ ├── ConstantMemberFilter.java │ │ │ │ ├── ConstantParameterFilter.java │ │ │ │ ├── DuplicateInitializerFixer.java │ │ │ │ ├── DuplicateInitializerInvocationFixer.java │ │ │ │ ├── InfluenceFixpointVisitor.java │ │ │ │ ├── KeepMarker.java │ │ │ │ ├── KeptClassFilter.java │ │ │ │ ├── KeptMemberFilter.java │ │ │ │ ├── LineNumberTrimmer.java │ │ │ │ ├── MemberDescriptorSpecializer.java │ │ │ │ ├── MemberReferenceGeneralizer.java │ │ │ │ ├── MethodDescriptorShrinker.java │ │ │ │ ├── MethodStaticizer.java │ │ │ │ ├── OptimizationInfoClassFilter.java │ │ │ │ ├── OptimizationInfoMemberFilter.java │ │ │ │ ├── Optimizer.java │ │ │ │ ├── ParameterShrinker.java │ │ │ │ ├── ReverseDependencyCalculator.java │ │ │ │ ├── ReverseDependencyStore.java │ │ │ │ ├── SideEffectVisitorMarkerFactory.java │ │ │ │ ├── TailRecursionSimplifier.java │ │ │ │ ├── TimedClassPoolVisitor.java │ │ │ │ ├── WriteOnlyFieldFilter.java │ │ │ │ ├── evaluation/ │ │ │ │ │ ├── EvaluationShrinker.java │ │ │ │ │ ├── EvaluationSimplifier.java │ │ │ │ │ ├── InstructionUsageMarker.java │ │ │ │ │ ├── LoadingInvocationUnit.java │ │ │ │ │ ├── ParameterTracingInvocationUnit.java │ │ │ │ │ ├── SimpleEnumArrayPropagator.java │ │ │ │ │ ├── SimpleEnumClassChecker.java │ │ │ │ │ ├── SimpleEnumClassSimplifier.java │ │ │ │ │ ├── SimpleEnumDescriptorSimplifier.java │ │ │ │ │ ├── SimpleEnumUseChecker.java │ │ │ │ │ ├── SimpleEnumUseSimplifier.java │ │ │ │ │ ├── StoringInvocationUnit.java │ │ │ │ │ └── VariableOptimizer.java │ │ │ │ ├── gson/ │ │ │ │ │ ├── DuplicateJsonFieldNameChecker.java │ │ │ │ │ ├── FieldSignatureCollector.java │ │ │ │ │ ├── GsonAnnotationCleaner.java │ │ │ │ │ ├── GsonBuilderInvocationFinder.java │ │ │ │ │ ├── GsonClassConstants.java │ │ │ │ │ ├── GsonConstructorPatcher.java │ │ │ │ │ ├── GsonContext.java │ │ │ │ │ ├── GsonDeserializationInvocationFinder.java │ │ │ │ │ ├── GsonDeserializationOptimizer.java │ │ │ │ │ ├── GsonDomainClassFinder.java │ │ │ │ │ ├── GsonInstrumentationAdder.java │ │ │ │ │ ├── GsonOptimizer.java │ │ │ │ │ ├── GsonRuntimeSettings.java │ │ │ │ │ ├── GsonSerializationInvocationFinder.java │ │ │ │ │ ├── GsonSerializationOptimizer.java │ │ │ │ │ ├── InlineDeserializer.java │ │ │ │ │ ├── InlineDeserializers.java │ │ │ │ │ ├── InlineSerializer.java │ │ │ │ │ ├── InlineSerializers.java │ │ │ │ │ ├── LocalOrAnonymousClassChecker.java │ │ │ │ │ ├── MarkedAnnotationDeleter.java │ │ │ │ │ ├── OptimizedClassConstants.java │ │ │ │ │ ├── OptimizedJsonFieldCollector.java │ │ │ │ │ ├── OptimizedJsonFieldVisitor.java │ │ │ │ │ ├── OptimizedJsonInfo.java │ │ │ │ │ ├── OptimizedJsonReaderImplInitializer.java │ │ │ │ │ ├── OptimizedJsonWriterImplInitializer.java │ │ │ │ │ ├── OptimizedTypeAdapterAdder.java │ │ │ │ │ ├── OptimizedTypeAdapterFactoryInitializer.java │ │ │ │ │ ├── OptimizedTypeAdapterInitializer.java │ │ │ │ │ ├── TypeArgumentFinder.java │ │ │ │ │ ├── TypeParameterClassChecker.java │ │ │ │ │ ├── TypeTokenClassBuilder.java │ │ │ │ │ ├── _GsonUtil.java │ │ │ │ │ ├── _OptimizedJsonReader.java │ │ │ │ │ ├── _OptimizedJsonReaderImpl.java │ │ │ │ │ ├── _OptimizedJsonWriter.java │ │ │ │ │ ├── _OptimizedJsonWriterImpl.java │ │ │ │ │ ├── _OptimizedTypeAdapter.java │ │ │ │ │ ├── _OptimizedTypeAdapterFactory.java │ │ │ │ │ ├── _OptimizedTypeAdapterImpl.java │ │ │ │ │ └── package.html │ │ │ │ ├── info/ │ │ │ │ │ ├── AccessMethodMarker.java │ │ │ │ │ ├── BackwardBranchMarker.java │ │ │ │ │ ├── CatchExceptionMarker.java │ │ │ │ │ ├── CaughtClassFilter.java │ │ │ │ │ ├── CaughtClassMarker.java │ │ │ │ │ ├── ClassOptimizationInfo.java │ │ │ │ │ ├── CodeAttributeOptimizationInfo.java │ │ │ │ │ ├── ContainsConstructorsMarker.java │ │ │ │ │ ├── DotClassFilter.java │ │ │ │ │ ├── DotClassMarker.java │ │ │ │ │ ├── DynamicInvocationMarker.java │ │ │ │ │ ├── EscapingClassFilter.java │ │ │ │ │ ├── EscapingClassMarker.java │ │ │ │ │ ├── ExceptionInstructionChecker.java │ │ │ │ │ ├── FieldOptimizationInfo.java │ │ │ │ │ ├── FinalFieldAssignmentMarker.java │ │ │ │ │ ├── InstanceofClassFilter.java │ │ │ │ │ ├── InstanceofClassMarker.java │ │ │ │ │ ├── InstantiationClassFilter.java │ │ │ │ │ ├── InstantiationClassMarker.java │ │ │ │ │ ├── MethodInvocationMarker.java │ │ │ │ │ ├── MethodOptimizationInfo.java │ │ │ │ │ ├── MutableBoolean.java │ │ │ │ │ ├── NoEscapingParametersMethodMarker.java │ │ │ │ │ ├── NoExternalReturnValuesMethodMarker.java │ │ │ │ │ ├── NoExternalSideEffectMethodMarker.java │ │ │ │ │ ├── NoSideEffectClassMarker.java │ │ │ │ │ ├── NoSideEffectMethodMarker.java │ │ │ │ │ ├── NonEmptyStackReturnMarker.java │ │ │ │ │ ├── NonPrivateMemberMarker.java │ │ │ │ │ ├── OptimizationCodeAttributeFilter.java │ │ │ │ │ ├── PackageVisibleMemberContainingClassMarker.java │ │ │ │ │ ├── PackageVisibleMemberInvokingClassMarker.java │ │ │ │ │ ├── ParameterEscapeMarker.java │ │ │ │ │ ├── ParameterEscapedMarker.java │ │ │ │ │ ├── ParameterUsageMarker.java │ │ │ │ │ ├── ProgramClassOptimizationInfo.java │ │ │ │ │ ├── ProgramClassOptimizationInfoSetter.java │ │ │ │ │ ├── ProgramFieldOptimizationInfo.java │ │ │ │ │ ├── ProgramMemberOptimizationInfoSetter.java │ │ │ │ │ ├── ProgramMethodOptimizationInfo.java │ │ │ │ │ ├── ReadWriteFieldMarker.java │ │ │ │ │ ├── ReferenceEscapeChecker.java │ │ │ │ │ ├── RepeatedClassPoolVisitor.java │ │ │ │ │ ├── SideEffectClassChecker.java │ │ │ │ │ ├── SideEffectClassFilter.java │ │ │ │ │ ├── SideEffectClassMarker.java │ │ │ │ │ ├── SideEffectInstructionChecker.java │ │ │ │ │ ├── SideEffectMethodFilter.java │ │ │ │ │ ├── SideEffectMethodMarker.java │ │ │ │ │ ├── SimpleEnumFilter.java │ │ │ │ │ ├── SimpleEnumMarker.java │ │ │ │ │ ├── SuperInvocationMarker.java │ │ │ │ │ ├── SynchronizedBlockMethodMarker.java │ │ │ │ │ ├── UnusedParameterMethodFilter.java │ │ │ │ │ ├── UnusedParameterOptimizationInfoUpdater.java │ │ │ │ │ ├── UsedParameterFilter.java │ │ │ │ │ ├── VariableUsageMarker.java │ │ │ │ │ └── WrapperClassMarker.java │ │ │ │ ├── kotlin/ │ │ │ │ │ └── KotlinContextReceiverUsageMarker.java │ │ │ │ └── peephole/ │ │ │ │ ├── ClassFinalizer.java │ │ │ │ ├── ClassMerger.java │ │ │ │ ├── GotoCommonCodeReplacer.java │ │ │ │ ├── GotoGotoReplacer.java │ │ │ │ ├── GotoReturnReplacer.java │ │ │ │ ├── HorizontalClassMerger.java │ │ │ │ ├── InstructionSequenceConstants.java │ │ │ │ ├── LineNumberLinearizer.java │ │ │ │ ├── MemberPrivatizer.java │ │ │ │ ├── MethodFinalizer.java │ │ │ │ ├── MethodInliner.java │ │ │ │ ├── NoConstructorReferenceReplacer.java │ │ │ │ ├── NopRemover.java │ │ │ │ ├── ReachableCodeMarker.java │ │ │ │ ├── RetargetedClassFilter.java │ │ │ │ ├── RetargetedInnerClassAttributeRemover.java │ │ │ │ ├── ShortMethodInliner.java │ │ │ │ ├── SingleInvocationMethodInliner.java │ │ │ │ ├── TargetClassChanger.java │ │ │ │ ├── UnreachableCodeRemover.java │ │ │ │ ├── UnreachableExceptionRemover.java │ │ │ │ ├── VariableShrinker.java │ │ │ │ ├── VerticalClassMerger.java │ │ │ │ ├── WrapperClassMerger.java │ │ │ │ └── WrapperClassUseSimplifier.java │ │ │ ├── pass/ │ │ │ │ ├── Pass.java │ │ │ │ └── PassRunner.java │ │ │ ├── preverify/ │ │ │ │ ├── PreverificationClearer.java │ │ │ │ ├── Preverifier.java │ │ │ │ └── SubroutineInliner.java │ │ │ ├── shrink/ │ │ │ │ ├── AnnotationUsageMarker.java │ │ │ │ ├── ClassShrinker.java │ │ │ │ ├── ClassUsageMarker.java │ │ │ │ ├── InnerUsageMarker.java │ │ │ │ ├── InterfaceUsageMarker.java │ │ │ │ ├── KotlinModuleShrinker.java │ │ │ │ ├── KotlinModuleUsageMarker.java │ │ │ │ ├── KotlinShrinker.java │ │ │ │ ├── LocalVariableTypeUsageMarker.java │ │ │ │ ├── NestUsageMarker.java │ │ │ │ ├── RecordComponentUsageMarker.java │ │ │ │ ├── ShortestClassUsageMarker.java │ │ │ │ ├── ShortestUsageMark.java │ │ │ │ ├── ShortestUsageMarker.java │ │ │ │ ├── ShortestUsagePrinter.java │ │ │ │ ├── Shrinker.java │ │ │ │ ├── SimpleUsageMarker.java │ │ │ │ ├── UsageMarker.java │ │ │ │ ├── UsagePrinter.java │ │ │ │ ├── UsedClassFilter.java │ │ │ │ ├── UsedMemberFilter.java │ │ │ │ └── shrink/ │ │ │ │ └── package.html │ │ │ ├── strip/ │ │ │ │ └── KotlinAnnotationStripper.java │ │ │ └── util/ │ │ │ ├── Benchmark.java │ │ │ ├── HashUtil.java │ │ │ ├── PrintWriterUtil.java │ │ │ ├── TimeUtil.java │ │ │ ├── TransformedStringMatcher.java │ │ │ └── kotlin/ │ │ │ ├── KotlinUnsupportedVersionChecker.java │ │ │ └── asserter/ │ │ │ ├── KotlinMetadataVerifier.java │ │ │ └── Reporter.java │ │ └── resources/ │ │ └── log4j2.xml │ └── test/ │ └── kotlin/ │ ├── proguard/ │ │ ├── AfterInitConfigurationVerifierTest.kt │ │ ├── ClassMergerTest.kt │ │ ├── ClassSpecificationVisitorFactoryTest.kt │ │ ├── ConfigurationParserTest.kt │ │ ├── Java19RecordPatternTest.kt │ │ ├── Java20RecordPatternTest.kt │ │ ├── LoggingTest.kt │ │ ├── MarkerTest.kt │ │ ├── obfuscate/ │ │ │ ├── SimpleNameFactoryTest.kt │ │ │ └── kotlin/ │ │ │ ├── KotlinCallableReferenceFixerTest.kt │ │ │ ├── KotlinIntrinsicsReplacementSequencesTest.kt │ │ │ └── KotlinValueParameterNameShrinkerTest.kt │ │ ├── optimize/ │ │ │ ├── KotlinContextReceiverParameterShrinkingTest.kt │ │ │ ├── MemberDescriptorSpecializerTest.kt │ │ │ ├── SimpleEnumClassCheckerTest.kt │ │ │ ├── gson/ │ │ │ │ ├── MarkedAnnotationDeleterTest.kt │ │ │ │ └── TypeArgumentFinderTest.kt │ │ │ ├── info/ │ │ │ │ └── InstantiationClassMarkerTest.kt │ │ │ └── peephole/ │ │ │ └── MethodInlinerTest.kt │ │ ├── shrink/ │ │ │ └── ClassUsageMarkerTest.kt │ │ └── util/ │ │ └── ProguardAssemblerTest.kt │ └── testutils/ │ ├── ConfigurationUtil.kt │ ├── JavaUtil.kt │ ├── LogUtils.kt │ ├── ProcessingFlagUtil.kt │ └── TestConfig.kt ├── bin/ │ ├── dprotect.sh │ ├── proguard.bat │ ├── proguard.sh │ ├── proguardgui.bat │ ├── proguardgui.sh │ ├── retrace.bat │ └── retrace.sh ├── build.gradle ├── docs/ │ ├── md/ │ │ ├── css/ │ │ │ ├── admonition.css │ │ │ └── extra.css │ │ ├── downloads.md │ │ ├── index.md │ │ ├── manual/ │ │ │ ├── FAQ.md │ │ │ ├── building.md │ │ │ ├── configuration/ │ │ │ │ ├── attributes.md │ │ │ │ ├── examples.md │ │ │ │ ├── optimizations.md │ │ │ │ └── usage.md │ │ │ ├── feedback.md │ │ │ ├── home.md │ │ │ ├── languages/ │ │ │ │ ├── java.md │ │ │ │ └── kotlin.md │ │ │ ├── license/ │ │ │ │ ├── gpl.md │ │ │ │ ├── gplexception.md │ │ │ │ └── license.md │ │ │ ├── quickstart.md │ │ │ ├── refcard.md │ │ │ ├── releasenotes.md │ │ │ ├── setup/ │ │ │ │ ├── ant.md │ │ │ │ ├── gradle.md │ │ │ │ ├── gradleplugin.md │ │ │ │ └── standalone.md │ │ │ ├── tools/ │ │ │ │ ├── appsweep.md │ │ │ │ ├── playground.md │ │ │ │ └── retrace.md │ │ │ └── troubleshooting/ │ │ │ ├── limitations.md │ │ │ └── troubleshooting.md │ │ └── results.md │ ├── mkdocs.yml │ └── notices/ │ └── Gson ├── dprotect/ │ └── build.gradle ├── examples/ │ ├── android-agp3-agp4/ │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── debug.keystore │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── proguard-project.txt │ │ ├── res/ │ │ │ └── values/ │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── settings.gradle │ │ └── src/ │ │ └── com/ │ │ └── example/ │ │ └── HelloWorldActivity.java │ ├── android-plugin/ │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── debug.keystore │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── proguard-project.txt │ │ ├── res/ │ │ │ └── values/ │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── settings.gradle │ │ └── src/ │ │ └── com/ │ │ └── example/ │ │ └── HelloWorldActivity.java │ ├── annotations/ │ │ ├── examples/ │ │ │ ├── Applet.java │ │ │ ├── Application.java │ │ │ ├── Bean.java │ │ │ └── NativeCallBack.java │ │ └── examples.pro │ ├── ant/ │ │ ├── applets.xml │ │ ├── applications1.xml │ │ ├── applications2.xml │ │ ├── applications3.xml │ │ ├── library.xml │ │ ├── midlets.xml │ │ ├── proguard.xml │ │ └── servlets.xml │ ├── application/ │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── proguard.pro │ │ ├── settings.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ └── App.java │ ├── application-kotlin/ │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── proguard.pro │ │ ├── settings.gradle │ │ └── src/ │ │ └── main/ │ │ └── kotlin/ │ │ └── App.kt │ ├── dictionaries/ │ │ ├── compact.txt │ │ ├── keywords.txt │ │ ├── shakespeare.txt │ │ └── windows.txt │ ├── gradle/ │ │ ├── android.gradle │ │ ├── applets.gradle │ │ ├── applications.gradle │ │ ├── library.gradle │ │ ├── midlets.gradle │ │ ├── proguard.gradle │ │ ├── proguardgui.gradle │ │ ├── retrace.gradle │ │ ├── scala.gradle │ │ ├── servlets.gradle │ │ └── settings.gradle │ ├── gradle-kotlin-dsl/ │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── settings.gradle.kts │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── gradlekotlindsl/ │ │ │ └── App.java │ │ └── test/ │ │ └── java/ │ │ └── gradlekotlindsl/ │ │ └── AppTest.java │ ├── spring-boot/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── settings.gradle │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── demo/ │ │ │ ├── DemoApplication.java │ │ │ ├── TestComponent.java │ │ │ └── sub/ │ │ │ └── TestComponent2.java │ │ └── resources/ │ │ └── application.properties │ └── standalone/ │ ├── android.pro │ ├── applets.pro │ ├── applications.pro │ ├── library.pro │ ├── midlets.pro │ ├── proguard.pro │ ├── proguardgui.pro │ ├── retrace.pro │ ├── scala.pro │ └── servlets.pro ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle-plugin/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── proguard/ │ │ │ └── gradle/ │ │ │ └── ProGuardTask.java │ │ ├── kotlin/ │ │ │ └── proguard/ │ │ │ └── gradle/ │ │ │ └── plugin/ │ │ │ ├── ProGuardPlugin.kt │ │ │ └── android/ │ │ │ ├── AndroidPlugin.kt │ │ │ ├── ProGuardTransform.kt │ │ │ ├── dsl/ │ │ │ │ ├── ProGuardAndroidExtension.kt │ │ │ │ ├── ProGuardConfiguration.kt │ │ │ │ └── VariantConfiguration.kt │ │ │ ├── tasks/ │ │ │ │ ├── CollectConsumerRulesTask.kt │ │ │ │ └── PrepareProguardConfigDirectoryTask.kt │ │ │ └── transforms/ │ │ │ ├── AndroidConsumerRulesTransform.kt │ │ │ └── ArchiveConsumerRulesTransform.kt │ │ └── resources/ │ │ └── lib/ │ │ ├── proguard-android-common.txt │ │ ├── proguard-android-debug.txt │ │ ├── proguard-android-optimize.txt │ │ └── proguard-android.txt │ └── test/ │ └── kotlin/ │ ├── proguard/ │ │ └── gradle/ │ │ ├── AgpVersionParserTest.kt │ │ ├── ConsumerRulesCollectionTest.kt │ │ ├── ConsumerRulesFilterTest.kt │ │ ├── GradlePluginIntegrationTest.kt │ │ ├── ProGuardPluginLegacyAGPIntegrationTest.kt │ │ ├── ProGuardPluginTest.kt │ │ ├── ProguardCacheRelocateabilityIntegrationTest.kt │ │ └── plugin/ │ │ └── android/ │ │ └── dsl/ │ │ ├── AaptRulesTest.kt │ │ ├── ConfigurationOrderTest.kt │ │ ├── ConfigurationTest.kt │ │ ├── DefaultConfigurationTest.kt │ │ └── FlavorsConfigurationTest.kt │ └── testutils/ │ ├── AndroidProjectBuilder.kt │ ├── GradleRunnerUtil.kt │ └── TestPluginClasspath.kt ├── gradle.properties ├── gradlew ├── gradlew.bat ├── gui/ │ ├── build.gradle │ └── src/ │ └── proguard/ │ └── gui/ │ ├── ClassPathPanel.java │ ├── ClassSpecificationDialog.java │ ├── ClassSpecificationsPanel.java │ ├── ExtensionFileFilter.java │ ├── FilterBuilder.java │ ├── FilterDialog.java │ ├── GUIResources.java │ ├── GUIResources.properties │ ├── JavaUtil.java │ ├── KeepSpecificationsPanel.java │ ├── ListPanel.java │ ├── MemberSpecificationDialog.java │ ├── MemberSpecificationsPanel.java │ ├── MessageDialogRunnable.java │ ├── OptimizationsDialog.java │ ├── ProGuardGUI.java │ ├── ProGuardRunnable.java │ ├── ReTraceRunnable.java │ ├── SwingUtil.java │ ├── TabbedPane.java │ ├── TextAreaOutputStream.java │ ├── TextAreaWriter.java │ ├── boilerplate.pro │ ├── default.pro │ ├── package.html │ └── splash/ │ ├── BufferedSprite.java │ ├── CircleSprite.java │ ├── ClipSprite.java │ ├── ColorSprite.java │ ├── CompositeSprite.java │ ├── ConstantColor.java │ ├── ConstantDouble.java │ ├── ConstantFont.java │ ├── ConstantInt.java │ ├── ConstantString.java │ ├── ConstantTiming.java │ ├── FontSprite.java │ ├── ImageSprite.java │ ├── LinearColor.java │ ├── LinearDouble.java │ ├── LinearInt.java │ ├── LinearTiming.java │ ├── OverrideGraphics2D.java │ ├── RectangleSprite.java │ ├── SawToothTiming.java │ ├── ShadowedSprite.java │ ├── SineTiming.java │ ├── SmoothTiming.java │ ├── SplashPanel.java │ ├── Sprite.java │ ├── TextSprite.java │ ├── TimeSwitchSprite.java │ ├── Timing.java │ ├── TypeWriterString.java │ ├── VariableColor.java │ ├── VariableDouble.java │ ├── VariableFont.java │ ├── VariableInt.java │ ├── VariableSizeFont.java │ ├── VariableString.java │ └── package.html ├── proguard-app/ │ └── build.gradle ├── retrace/ │ ├── build.gradle │ └── src/ │ └── proguard/ │ └── retrace/ │ ├── FrameInfo.java │ ├── FramePattern.java │ ├── FrameRemapper.java │ ├── ReTrace.java │ └── package.html ├── scripts/ │ ├── docker/ │ │ ├── gh_action.sh │ │ └── publish_gradle_plugin.sh │ └── fetch_dprotect_core.py └── settings.gradle