Stabilization UI and scaffolding

This commit is contained in:
Matthieu 2022-10-22 22:07:03 +02:00
parent 8afd3b88df
commit 83755fdc93
9 changed files with 778 additions and 103 deletions

View File

@ -127,15 +127,17 @@ class PostCreationActivity : BaseThemedWithoutBarActivity() {
uiState.newEncodingJobPosition?.let { position ->
uiState.newEncodingJobMuted?.let { muted ->
uiState.newEncodingJobVideoStart?.let { videoStart ->
uiState.newEncodingJobVideoEnd?.let { videoEnd ->
uiState.newEncodingJobVideoStart.let { videoStart ->
uiState.newEncodingJobVideoEnd.let { videoEnd ->
uiState.newEncodingJobSpeedIndex?.let { speedIndex ->
uiState.newEncodingJobVideoCrop?.let { crop ->
startEncoding(position, muted,
videoStart, videoEnd,
speedIndex, crop
)
model.encodingStarted()
uiState.newEncodingJobStabilize?.let { stabilize ->
startEncoding(position, muted,
videoStart, videoEnd,
speedIndex, crop, stabilize,
)
model.encodingStarted()
}
}
}
}
@ -336,7 +338,8 @@ class PostCreationActivity : BaseThemedWithoutBarActivity() {
videoStart: Float?,
videoEnd: Float?,
speedIndex: Int,
crop: VideoEditActivity.RelativeCropPosition
crop: VideoEditActivity.RelativeCropPosition,
stabilize: Float
) {
val originalUri = model.getPhotoData().value!![position].imageUri
@ -355,91 +358,107 @@ class PostCreationActivity : BaseThemedWithoutBarActivity() {
val mediaInformation: MediaInformation? = FFprobeKit.getMediaInformation(ffmpegCompliantUri(inputUri)).mediaInformation
val totalVideoDuration = mediaInformation?.duration?.toFloatOrNull()
val speed = VideoEditActivity.speedChoices[speedIndex]
fun secondPass(){
val speed = VideoEditActivity.speedChoices[speedIndex]
val mutedString = if(muted || speedIndex != 1) "-an" else null
val startString: List<String?> = if(videoStart != null) listOf("-ss", "${videoStart/speed.toFloat()}") else listOf(null, null)
val mutedString = if(muted || speedIndex != 1) "-an" else null
val startString: List<String?> = if(videoStart != null) listOf("-ss", "${videoStart/speed.toFloat()}") else listOf(null, null)
val endString: List<String?> = if(videoEnd != null) listOf("-to", "${videoEnd/speed.toFloat() - (videoStart ?: 0f)/speed.toFloat()}") else listOf(null, null)
val endString: List<String?> = if(videoEnd != null) listOf("-to", "${videoEnd/speed.toFloat() - (videoStart ?: 0f)/speed.toFloat()}") else listOf(null, null)
// iw and ih are variables for the original width and height values, FFmpeg will know them
val cropString = if(crop.notCropped()) "" else "crop=${crop.relativeWidth}*iw:${crop.relativeHeight}*ih:${crop.relativeX}*iw:${crop.relativeY}*ih"
val separator = if(speedIndex != 1 && !crop.notCropped()) "," else ""
val speedString = if(speedIndex != 1) "setpts=PTS/${speed}" else ""
// iw and ih are variables for the original width and height values, FFmpeg will know them
val cropString = if(crop.notCropped()) "" else "crop=${crop.relativeWidth}*iw:${crop.relativeHeight}*ih:${crop.relativeX}*iw:${crop.relativeY}*ih"
val separator = if(speedIndex != 1 && !crop.notCropped()) "," else ""
val speedString = if(speedIndex != 1) "setpts=PTS/${speed}" else ""
val speedAndCropString: List<String?> = if(speedIndex!= 1 || !crop.notCropped())
listOf("-filter:v", speedString + separator + cropString)
val speedAndCropString: List<String?> = if(speedIndex!= 1 || !crop.notCropped())
listOf("-filter:v", speedString + separator + cropString)
// Stream copy is not compatible with filter, but when not filtering we can copy the stream without re-encoding
else listOf("-c", "copy")
// This should be set when re-encoding is required (otherwise it defaults to mpeg which then doesn't play)
val encodePreset: List<String?> = if(speedIndex != 1 && !crop.notCropped()) listOf("-c:v", "libx264", "-preset", "ultrafast") else listOf(null, null, null, null)
// This should be set when re-encoding is required (otherwise it defaults to mpeg which then doesn't play)
val encodePreset: List<String?> = if(speedIndex != 1 && !crop.notCropped()) listOf("-c:v", "libx264", "-preset", "ultrafast") else listOf(null, null, null, null)
val session: FFmpegSession =
FFmpegKit.executeWithArgumentsAsync(listOfNotNull(
startString[0], startString[1],
"-i", ffmpegCompliantUri,
speedAndCropString[0], speedAndCropString[1],
endString[0], endString[1],
mutedString, "-y",
encodePreset[0], encodePreset[1], encodePreset[2], encodePreset[3],
outputVideoPath,
).toTypedArray(),
//val session: FFmpegSession = FFmpegKit.executeAsync("$startString -i $inputSafePath $endString -c:v libvpx-vp9 -c:a copy -an -y $outputVideoPath",
{ session ->
val returnCode = session.returnCode
if (ReturnCode.isSuccess(returnCode)) {
fun successResult() {
// Hide progress indicator in carousel
binding.carousel.updateProgress(null, position, false)
val (imageSize, _) = outputVideoPath.toUri().let {
model.setUriAtPosition(it, position)
model.getSizeAndVideoValidate(it, position)
val session: FFmpegSession =
FFmpegKit.executeWithArgumentsAsync(listOfNotNull(
startString[0], startString[1],
"-i", ffmpegCompliantUri,
speedAndCropString[0], speedAndCropString[1],
endString[0], endString[1],
mutedString, "-y",
encodePreset[0], encodePreset[1], encodePreset[2], encodePreset[3],
outputVideoPath,
).toTypedArray(),
//val session: FFmpegSession = FFmpegKit.executeAsync("$startString -i $inputSafePath $endString -c:v libvpx-vp9 -c:a copy -an -y $outputVideoPath",
{ session ->
val returnCode = session.returnCode
if (ReturnCode.isSuccess(returnCode)) {
fun successResult() {
// Hide progress indicator in carousel
binding.carousel.updateProgress(null, position, false)
val (imageSize, _) = outputVideoPath.toUri().let {
model.setUriAtPosition(it, position)
model.getSizeAndVideoValidate(it, position)
}
model.setVideoEncodeAtPosition(position, null)
model.setSizeAtPosition(imageSize, position)
}
val post = resultHandler.post {
successResult()
}
if(!post) {
Log.e(TAG, "Failed to post changes, trying to recover in 100ms")
resultHandler.postDelayed({successResult()}, 100)
}
Log.d(TAG, "Encode completed successfully in ${session.duration} milliseconds")
} else {
resultHandler.post {
binding.carousel.updateProgress(null, position, error = true)
model.setVideoEncodeAtPosition(position, null)
}
Log.e(TAG, "Encode failed with state ${session.state} and rc $returnCode.${session.failStackTrace}")
}
model.setVideoEncodeAtPosition(position, null)
model.setSizeAtPosition(imageSize, position)
}
},
{ log -> Log.d("PostCreationActivityEncoding", log.message) }
) { statistics: Statistics? ->
val post = resultHandler.post {
successResult()
}
if(!post) {
Log.e(TAG, "Failed to post changes, trying to recover in 100ms")
resultHandler.postDelayed({successResult()}, 100)
}
Log.d(TAG, "Encode completed successfully in ${session.duration} milliseconds")
} else {
resultHandler.post {
binding.carousel.updateProgress(null, position, error = true)
model.setVideoEncodeAtPosition(position, null)
}
Log.e(TAG, "Encode failed with state ${session.state} and rc $returnCode.${session.failStackTrace}")
}
},
{ log -> Log.d("PostCreationActivityEncoding", log.message) }
) { statistics: Statistics? ->
val timeInMilliseconds: Int? = statistics?.time
timeInMilliseconds?.let {
if (timeInMilliseconds > 0) {
val completePercentage = totalVideoDuration?.let {
val speedupDurationModifier = VideoEditActivity.speedChoices[speedIndex].toFloat()
val timeInMilliseconds: Int? = statistics?.time
timeInMilliseconds?.let {
if (timeInMilliseconds > 0) {
val completePercentage = totalVideoDuration?.let {
val speedupDurationModifier = VideoEditActivity.speedChoices[speedIndex].toFloat()
val newTotalDuration = (it - (videoStart ?: 0f) - (it - (videoEnd ?: it)))/speedupDurationModifier
timeInMilliseconds / (10*newTotalDuration)
}
resultHandler.post {
completePercentage?.let {
val rounded: Int = it.roundToInt()
model.setVideoEncodeAtPosition(position, rounded)
binding.carousel.updateProgress(rounded, position, false)
val newTotalDuration = (it - (videoStart ?: 0f) - (it - (videoEnd ?: it)))/speedupDurationModifier
timeInMilliseconds / (10*newTotalDuration)
}
resultHandler.post {
completePercentage?.let {
val rounded: Int = it.roundToInt()
model.setVideoEncodeAtPosition(position, rounded)
binding.carousel.updateProgress(rounded, position, false)
}
}
Log.d(TAG, "Encoding video: %$completePercentage.")
}
}
Log.d(TAG, "Encoding video: %$completePercentage.")
}
}
model.registerNewFFmpegSession(position, session.sessionId)
}
model.registerNewFFmpegSession(position, session.sessionId)
fun stabilizationFirstPass(){
//TODO FFmpeg
secondPass()
}
if(stabilize > 0.01f) {
// Stabilization was requested: we need an additional first pass to get stabilization data
stabilizationFirstPass()
} else {
// Immediately call the second pass, no stabilization needed
secondPass()
}
}
private fun edit(position: Int) {

View File

@ -63,7 +63,7 @@ data class PostCreationActivityUiState(
val newEncodingJobVideoStart: Float? = null,
val newEncodingJobVideoEnd: Float? = null,
val newEncodingJobVideoCrop: RelativeCropPosition? = null,
val newEncodingJobStabilize: Float? = null,
)
class PostCreationViewModel(application: Application, clipdata: ClipData? = null, val instance: InstanceDatabaseEntity? = null) : AndroidViewModel(application) {
@ -377,6 +377,8 @@ class PostCreationViewModel(application: Application, clipdata: ClipData? = null
val videoCrop: RelativeCropPosition = data.getSerializableExtra(VideoEditActivity.VIDEO_CROP) as RelativeCropPosition
val videoStabilize: Float = data.getFloatExtra(VideoEditActivity.VIDEO_STABILIZE, 1f)
videoEncodeProgress = 0
sessionMap[position]?.let { FFmpegKit.cancel(it) }
_uiState.update { currentUiState ->
@ -386,7 +388,8 @@ class PostCreationViewModel(application: Application, clipdata: ClipData? = null
newEncodingJobSpeedIndex = speedIndex,
newEncodingJobVideoStart = videoStart,
newEncodingJobVideoEnd = videoEnd,
newEncodingJobVideoCrop = videoCrop
newEncodingJobVideoCrop = videoCrop,
newEncodingJobStabilize = videoStabilize
)
}
}

View File

@ -32,6 +32,7 @@ import com.arthenica.ffmpegkit.MediaInformation
import com.arthenica.ffmpegkit.ReturnCode
import com.bumptech.glide.Glide
import com.google.android.material.slider.RangeSlider
import com.google.android.material.slider.Slider
import org.pixeldroid.app.R
import org.pixeldroid.app.databinding.ActivityVideoEditBinding
import org.pixeldroid.app.postCreation.PostCreationActivity
@ -42,7 +43,6 @@ import java.io.File
import java.io.Serializable
import kotlin.math.absoluteValue
class VideoEditActivity : BaseThemedWithBarActivity() {
data class RelativeCropPosition(
@ -68,6 +68,25 @@ class VideoEditActivity : BaseThemedWithBarActivity() {
private var cropRelativeDimensions: RelativeCropPosition = RelativeCropPosition()
private var stabilization: Float = 0f
set(value){
field = value
if(value > 0.01f && value <= 100f){
// Stabilization requested, show UI
binding.stabilisationSaved.isVisible = true
val typedValue = TypedValue()
val color: Int = if (binding.stabilizer.context.theme
.resolveAttribute(R.attr.colorOnPrimaryContainer, typedValue, true)
) typedValue.data else Color.TRANSPARENT
binding.stabilizer.drawable.setTint(color)
}
else {
binding.stabilisationSaved.isVisible = false
binding.stabilizer.drawable.setTintList(null)
}
}
private var speed: Int = 1
set(value) {
field = value
@ -232,6 +251,21 @@ class VideoEditActivity : BaseThemedWithBarActivity() {
}.show()
}
binding.stabilizer.setOnClickListener {
AlertDialog.Builder(this).apply {
setIcon(R.drawable.video_stable)
setTitle(R.string.stabilize_video_intensity)
val slider = Slider(context).apply {
valueFrom = 0f
valueTo = 100f
value = stabilization
}
setView(slider)
setNegativeButton(android.R.string.cancel) { _, _ -> }
setPositiveButton(android.R.string.ok) { _, _ -> stabilization = slider.value}
}.show()
}
val thumbInterval: Float? = duration?.div(7)
@ -306,9 +340,14 @@ class VideoEditActivity : BaseThemedWithBarActivity() {
if(show) binding.cropSavedCard.visibility = View.GONE
else if(!cropRelativeDimensions.notCropped()) binding.cropSavedCard.visibility = View.VISIBLE
binding.stabilisationSaved.visibility =
if(!show && stabilization > 0.01f && stabilization <= 100f) View.VISIBLE
else View.GONE
binding.muter.visibility = visibilityOfOthers
binding.speeder.visibility = visibilityOfOthers
binding.cropper.visibility = visibilityOfOthers
binding.stabilizer.visibility = visibilityOfOthers
binding.videoRangeSeekBar.visibility = visibilityOfOthers
binding.videoView.visibility = visibilityOfOthers
binding.thumbnail1.visibility = visibilityOfOthers
@ -327,6 +366,7 @@ class VideoEditActivity : BaseThemedWithBarActivity() {
}
private fun returnWithValues() {
//TODO Check if some of these should be null to indicate no changes in that category? Ex start/end
val intent = Intent(this, PostCreationActivity::class.java)
.apply {
putExtra(PhotoEditActivity.PICTURE_POSITION, videoPosition)
@ -336,6 +376,7 @@ class VideoEditActivity : BaseThemedWithBarActivity() {
putExtra(VIDEO_START, binding.videoRangeSeekBar.values.first())
putExtra(VIDEO_END, binding.videoRangeSeekBar.values[2])
putExtra(VIDEO_CROP, cropRelativeDimensions)
putExtra(VIDEO_STABILIZE, stabilization)
addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
}
@ -350,7 +391,9 @@ class VideoEditActivity : BaseThemedWithBarActivity() {
binding.cropImageView.resetCropRect()
cropRelativeDimensions = RelativeCropPosition()
binding.cropper.drawable.setTintList(null)
binding.stabilizer.drawable.setTintList(null)
binding.cropSavedCard.visibility = View.GONE
stabilization = 0f
}
override fun onDestroy() {
@ -414,6 +457,7 @@ class VideoEditActivity : BaseThemedWithBarActivity() {
const val VIDEO_START = "VideoEditVideoStartTag"
const val VIDEO_END = "VideoEditVideoEndTag"
const val VIDEO_CROP = "VideoEditVideoCropTag"
const val VIDEO_STABILIZE = "VideoEditVideoStabilizeTag"
const val MODIFIED = "VideoEditModifiedTag"
}
}

View File

@ -177,7 +177,7 @@ class ColorPickerView(context: Context?, attrs: AttributeSet? = null) : FrameLay
binding.theme4.setOnClickListener { color = 3 }
}
private fun changeConstraint(button2: View) {
private fun moveChoiceIndicator(button2: View) {
binding.chosenTheme.isVisible = true
val params = binding.chosenTheme.layoutParams as ConstraintLayout.LayoutParams
params.endToEnd = button2.id
@ -185,8 +185,7 @@ class ColorPickerView(context: Context?, attrs: AttributeSet? = null) : FrameLay
binding.chosenTheme.layoutParams = params
binding.chosenTheme.requestLayout()
}
/** Returns the color selected by the user */
/** Sets the original color swatch and the current color to the specified value. */
/** Color selected by the user */
var color: Int = 0
set(value) {
field = value
@ -196,7 +195,7 @@ class ColorPickerView(context: Context?, attrs: AttributeSet? = null) : FrameLay
2 -> binding.theme3
3 -> binding.theme4
else -> null
}?.let { changeConstraint(it) }
}?.let { moveChoiceIndicator(it) }
// Check switch if set to dynamic
binding.dynamicColorSwitch.isChecked = value == -1

View File

@ -0,0 +1,5 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M20,4H4C2.9,4 2,4.9 2,6v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V6C22,4.9 21.1,4 20,4zM4,18V6h2.95l-2.33,8.73L16.82,18H4zM20,18h-2.95l2.34,-8.73L7.18,6H20V18z"/>
</vector>

View File

@ -42,7 +42,6 @@
android:contentDescription="@string/save_crop"
app:icon="@drawable/ic_crop_black_24dp"/>
<ImageView
android:id="@+id/muter"
android:layout_width="60dp"
@ -54,22 +53,9 @@
android:padding="4dp"
android:src="@drawable/selector_mute"
app:layout_constraintBottom_toTopOf="@+id/thumbnail1"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintStart_toStartOf="parent"/>
<ImageView
android:id="@+id/speeder"
android:layout_width="60dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginBottom="48dp"
android:contentDescription="@string/video_speed"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:src="@drawable/speed"
app:layout_constraintBottom_toTopOf="@+id/thumbnail1"
app:layout_constraintStart_toEndOf="@+id/muter" />
<ImageButton
android:id="@+id/cropper"
android:layout_width="60dp"
android:layout_height="40dp"
@ -80,7 +66,7 @@
android:padding="4dp"
android:src="@drawable/ic_crop_black_24dp"
app:layout_constraintBottom_toTopOf="@+id/thumbnail1"
app:layout_constraintStart_toEndOf="@+id/speeder" />
app:layout_constraintStart_toEndOf="@+id/muter"/>
<com.google.android.material.card.MaterialCardView
android:visibility="invisible"
@ -109,7 +95,6 @@
app:layout_constraintStart_toStartOf="parent"/>
<TextView
android:id="@+id/encodeInfoText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
@ -121,6 +106,71 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<ImageView
android:id="@+id/speeder"
android:layout_width="60dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginBottom="48dp"
android:contentDescription="@string/video_speed"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:src="@drawable/speed"
app:layout_constraintBottom_toTopOf="@+id/thumbnail1"
app:layout_constraintStart_toEndOf="@+id/cropper" />
<ImageView
android:id="@+id/stabilizer"
android:layout_width="60dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginBottom="48dp"
android:contentDescription="@string/stabilize_video"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:src="@drawable/video_stable"
app:layout_constraintBottom_toTopOf="@+id/thumbnail1"
app:layout_constraintStart_toEndOf="@+id/speeder" />
<com.google.android.material.card.MaterialCardView
android:visibility="invisible"
tools:visibility="visible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/stabilizer"
app:layout_constraintEnd_toEndOf="@+id/stabilizer"
app:layout_constraintBottom_toTopOf="@+id/stabilizer"
android:id="@+id/stabilisation_saved"
android:layout_marginBottom="8dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp">
<ImageView
android:id="@+id/checkMarkStabilize"
android:importantForAccessibility="no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/check_circle_24"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="@id/checkMarkStabilize"
app:layout_constraintTop_toTopOf="@id/checkMarkStabilize"
app:layout_constraintStart_toEndOf="@id/checkMarkStabilize"
android:layout_marginEnd="8dp"
android:text="@string/stabilization_saved" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.slider.RangeSlider
android:id="@+id/videoRangeSeekBar"
android:layout_width="match_parent"

View File

@ -296,6 +296,9 @@ For more info about Pixelfed, you can check here: https://pixelfed.org"</string>
<string name="add_images_error">Error while adding images</string>
<string name="notification_thumbnail">"Thumbnail of image in this notification's post"</string>
<string name="post_preview">Preview of a post</string>
<string name="stabilize_video">Stabilize video</string>
<string name="stabilize_video_intensity">Change intensity of stabilization</string>
<string name="stabilization_saved">Stabilization saved</string>
<plurals name="replies_count">
<item quantity="one">%d reply</item>
<item quantity="other">%d replies</item>

View File

@ -7,7 +7,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0-alpha03'
classpath 'com.android.tools.build:gradle:8.0.0-alpha05'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong

View File

@ -504,6 +504,14 @@
<sha256 value="9859b27bd903888eca0a1f6047b3edcfb0aae2f99c51d77b5912963be6b1f228" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-adapters" version="8.0.0-alpha05">
<artifact name="databinding-adapters-8.0.0-alpha05.aar">
<sha256 value="1eba225c11368167e9385262a60a70a3770cb0ba6f65e77a1b4ff178adcd0d49" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-adapters-8.0.0-alpha05.module">
<sha256 value="2c91013b9f327a9b14b453c1bf0df469463ae8197f424cd329c26bf2555bb9f4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-common" version="7.3.0">
<artifact name="databinding-common-7.3.0.jar">
<sha256 value="6b4a121c5d274d34e0386aa019848a2e946ebd98e4a5f693b1df68a771a031be" origin="Generated by Gradle"/>
@ -552,6 +560,14 @@
<sha256 value="e1b33e823c6c4d2ce3d9168ff065206d89c4497c0b525d2046ca400506fd63e7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-common" version="8.0.0-alpha05">
<artifact name="databinding-common-8.0.0-alpha05.jar">
<sha256 value="9fa21e2030273ee3cb8c4701c341af8cf9359791a3b45b2bc0be07870c03b1c8" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-common-8.0.0-alpha05.pom">
<sha256 value="28207beab29b5ab27c005da1bc57002a2a219e13c5d994188fcc052661ac4436" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler" version="7.3.0">
<artifact name="databinding-compiler-7.3.0.jar">
<sha256 value="2d9c0184193e01d733c5208f40e64e81cfc83ca34a21b7105c8b14536d8d73e2" origin="Generated by Gradle"/>
@ -592,6 +608,14 @@
<sha256 value="507c950d192e0da250d6a07d245faab5d974733e996e7aaef207eb0a4ee3c96c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler" version="8.0.0-alpha05">
<artifact name="databinding-compiler-8.0.0-alpha05.jar">
<sha256 value="dcf8ce5ca0126b14d627bc0bf405b5d8b4ede1cf2b9c45d9b037a78e4c31e840" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-compiler-8.0.0-alpha05.pom">
<sha256 value="588d60a0b927d52c8b0d9d79f358cad92ed31914e0951c3bcf394b834a0cec4f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler-common" version="7.3.0">
<artifact name="databinding-compiler-common-7.3.0.jar">
<sha256 value="11b86c7101e437b15567a005def747022d01543d81d620e18856df27c8274048" origin="Generated by Gradle"/>
@ -640,6 +664,14 @@
<sha256 value="24c9eacc91fdb6e8d6c642edb0236a2748ea50ab9603ab4c53b3ebb861502281" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler-common" version="8.0.0-alpha05">
<artifact name="databinding-compiler-common-8.0.0-alpha05.jar">
<sha256 value="8dc1a0d76a346a921dc1f5d805796798c60f90a8839660f5b011cf988e78d10a" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-compiler-common-8.0.0-alpha05.pom">
<sha256 value="25e3fa032a1c45ba33853e9ce13e999f5f0fcbf2651a913d9e054a6006b21012" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-ktx" version="7.3.0">
<artifact name="databinding-ktx-7.3.0.aar">
<sha256 value="f58a03b789c71b67d27a4431b43d77dd4657a20bdfafe5aa98abb2ce3ff47e91" origin="Generated by Gradle"/>
@ -683,6 +715,14 @@
<sha256 value="5ff34cec08f4b04e31fb68a3e51d9ecd6f3a56c42f395874da79cf32a19f998a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-ktx" version="8.0.0-alpha05">
<artifact name="databinding-ktx-8.0.0-alpha05.aar">
<sha256 value="00d201d5c0405b6177e3f886b0268665cf594e21addee20e2f5ad1ea235b09c5" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-ktx-8.0.0-alpha05.module">
<sha256 value="5f3870c369ec1e364d5d8b4bfac8aad78986646fda612dd69e6c02444ffacf94" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-runtime" version="7.3.0">
<artifact name="databinding-runtime-7.3.0.aar">
<sha256 value="6afc8bc945a0d148b693aed30230e70d4503aa564f7ec1d31148f99685739193" origin="Generated by Gradle"/>
@ -726,6 +766,14 @@
<sha256 value="5a07aa7451fbaaca60daf15a14c5734b2bf8f843fb219ade42ec58665425761d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-runtime" version="8.0.0-alpha05">
<artifact name="databinding-runtime-8.0.0-alpha05.aar">
<sha256 value="1daabcee5909bef88b8f6b282f05b7b7ef977e29c03efa07365cd9a7354f02f5" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-runtime-8.0.0-alpha05.module">
<sha256 value="114dcfb5af543b4e5765fa1d36bb71f1bb0ac88870da366d5a73be17b1166a32" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="viewbinding" version="7.3.0">
<artifact name="viewbinding-7.3.0.aar">
<sha256 value="9bdd5f2a025ec1f5d4e4352d80836621c057d632a2e17306142f773e251c3a53" origin="Generated by Gradle"/>
@ -769,6 +817,14 @@
<sha256 value="3414947453f9e0f51446ce768c2919c2764b236beaa34ad8bbfde68ec7b9f8e2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="viewbinding" version="8.0.0-alpha05">
<artifact name="viewbinding-8.0.0-alpha05.aar">
<sha256 value="cd2770b04278c417a64557b39a47928573a9f88923833eb6384c87bd48cf71cd" origin="Generated by Gradle"/>
</artifact>
<artifact name="viewbinding-8.0.0-alpha05.module">
<sha256 value="f249a11f539a67f34b0d6180c008c435f526ee765abb6cb460f753763930f590" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.documentfile" name="documentfile" version="1.0.0">
<artifact name="documentfile-1.0.0.aar">
<sha256 value="865a061ef2fad16522f8433536b8d47208c46ff7c7745197dfa1eeb481869487" origin="Generated by Gradle"/>
@ -2300,6 +2356,14 @@
<sha256 value="c50b949cca526c9d61f74f962a5b15615c4aca9d9942b527e4edb55855fd9861" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android" name="signflinger" version="8.0.0-alpha05">
<artifact name="signflinger-8.0.0-alpha05.jar">
<sha256 value="1f25f3f9c5d706fd7bc133a45bf35511093197d540635a613d1aae11260e314a" origin="Generated by Gradle"/>
</artifact>
<artifact name="signflinger-8.0.0-alpha05.pom">
<sha256 value="00831c471631e9820c317e9f3124e315fb6dacb26c1dd23168829ec3c95f4f1d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android" name="zipflinger" version="7.3.0">
<artifact name="zipflinger-7.3.0.jar">
<sha256 value="accf407c70267cf7eb583ed5aaa1358c2d8fdbdf9c77675010118af6b55c0d5c" origin="Generated by Gradle"/>
@ -2348,6 +2412,14 @@
<sha256 value="543105ccd23feee8a088f4732f9492603283cfa55cdedce137030139bd643147" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android" name="zipflinger" version="8.0.0-alpha05">
<artifact name="zipflinger-8.0.0-alpha05.jar">
<sha256 value="d82b239494dd262e65cd94b2edf96c9b5cf19c7afbfc84f2601749f50e15c765" origin="Generated by Gradle"/>
</artifact>
<artifact name="zipflinger-8.0.0-alpha05.pom">
<sha256 value="3444bba2d9d2edf2e64d20208b1744e17a6d499fcaa56cc4cc585b9b677ec9bc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.databinding" name="baseLibrary" version="7.3.0">
<artifact name="baseLibrary-7.3.0.jar">
<sha256 value="7ff63bd34cae029e479fca52751cc67ae23e00f2a4c71c30203968f33704aa96" origin="Generated by Gradle"/>
@ -2396,6 +2468,14 @@
<sha256 value="c8942e9cc628c270ffa15e0c1cd6742e76db0164a50dfae28e3caace4177794f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.databinding" name="baseLibrary" version="8.0.0-alpha05">
<artifact name="baseLibrary-8.0.0-alpha05.jar">
<sha256 value="530b2113317ff4d0f69ffdfb49387ba4b86aac169e1c77dff943405b79adcf8b" origin="Generated by Gradle"/>
</artifact>
<artifact name="baseLibrary-8.0.0-alpha05.pom">
<sha256 value="3dd694a06efa37372217b5675d1028c9c366a3e95ac784433b162ee2ecd9b3e7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.support" name="animated-vector-drawable" version="26.0.2">
<artifact name="animated-vector-drawable-26.0.2.aar">
<sha256 value="2a7a8fe5f71be6f96762a1f006ae0efcc2408f58e7279db1103438211107ec56" origin="Generated by Gradle"/>
@ -2524,6 +2604,14 @@
<sha256 value="c0c308bcdec62da751a2358b3517c57df517b35b54b63cf6a3aa3ad782a97283" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="annotations" version="31.0.0-alpha05">
<artifact name="annotations-31.0.0-alpha05.jar">
<sha256 value="d4ba7dd6055a6f1fd6ddb6dcef4e2096c15908bc7dc6057cb2e06f3a0db949c7" origin="Generated by Gradle"/>
</artifact>
<artifact name="annotations-31.0.0-alpha05.pom">
<sha256 value="2e93190c3d7353bb72d194ad7b93efa6572cf58500405d0befff3d6ae384ade2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="common" version="30.3.0">
<artifact name="common-30.3.0.jar">
<sha256 value="e2960f28e3fbdd6b947c8121acc40e03ec932632333c0ce4683ce84588a6468b" origin="Generated by Gradle"/>
@ -2572,6 +2660,14 @@
<sha256 value="25211d48ea1fd3999a1e03558448263d70c17b2d81aed8e831cb350a0068a21b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="common" version="31.0.0-alpha05">
<artifact name="common-31.0.0-alpha05.jar">
<sha256 value="c48058b618a8f74dbc94af073b8c293cf4360cb82e08b7a5577abb71e3825680" origin="Generated by Gradle"/>
</artifact>
<artifact name="common-31.0.0-alpha05.pom">
<sha256 value="414afe83ab0d0f7890752fb52cdbd5801713e4ffc4c1a17c62ca933fd2d9f211" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="desugar_jdk_libs" version="1.1.5">
<artifact name="desugar_jdk_libs-1.1.5.jar">
<sha256 value="52b390b038c5fd62b1ec697bdf5e236ac3286756667350e5466838edea9cb26e" origin="Generated by Gradle"/>
@ -2668,6 +2764,14 @@
<sha256 value="991ae553ecce6fe6b116fb0c22d24877bf95a0cd8f317e6a7e028c2685fa87fc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="dvlib" version="31.0.0-alpha05">
<artifact name="dvlib-31.0.0-alpha05.jar">
<sha256 value="d946ad39a40b667c82da87724527815536de62d0db0e8ea333449fdb90509001" origin="Generated by Gradle"/>
</artifact>
<artifact name="dvlib-31.0.0-alpha05.pom">
<sha256 value="b2f326c177f1d3666acf9eea95a24370e0986a73122c4bc59f45290b5d095078" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="repository" version="30.3.0">
<artifact name="repository-30.3.0.jar">
<sha256 value="a3bd11b434ccde5df90de77fd853361d99c150778cce5638d1ce25f820b9e243" origin="Generated by Gradle"/>
@ -2716,6 +2820,14 @@
<sha256 value="e5f99020a81ac4ca30fad7d977d53c77910d31c87323ab1c9e58e7cfc173b2ec" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="repository" version="31.0.0-alpha05">
<artifact name="repository-31.0.0-alpha05.jar">
<sha256 value="c11d10822af862cee3412ddc7245f6054d4b00a9e61fd1d2357390280879ea36" origin="Generated by Gradle"/>
</artifact>
<artifact name="repository-31.0.0-alpha05.pom">
<sha256 value="05985c8a04bd6db4d3aa78c5b2f558048acc6055d9d79eeb0b3a242040265ccf" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdk-common" version="30.3.0">
<artifact name="sdk-common-30.3.0.jar">
<sha256 value="fbe6b7dfb30b38ab1d17c5c6b660a8446ac2023fb0cfca3231126facedac2b7c" origin="Generated by Gradle"/>
@ -2764,6 +2876,14 @@
<sha256 value="9601edc8df9eeaf7793942350d4cc6b43ad861d3b5b59b44f592495513606e48" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdk-common" version="31.0.0-alpha05">
<artifact name="sdk-common-31.0.0-alpha05.jar">
<sha256 value="58f1179d0547be28977eb7fd5ca440d5723ab1b5f908cd7f9bce61322bad05c5" origin="Generated by Gradle"/>
</artifact>
<artifact name="sdk-common-31.0.0-alpha05.pom">
<sha256 value="b3a3bac4855ad1dfa14f655683e660399b98f0abd82dd68b2b084cbac71b347a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdklib" version="30.3.0">
<artifact name="sdklib-30.3.0.jar">
<sha256 value="57e147e5c3add5bfa1c53eb81aa24edbe2056fbd2210a00c9a71409ae498356b" origin="Generated by Gradle"/>
@ -2812,6 +2932,14 @@
<sha256 value="e52b04fa1baf9a9dd2e12493822e88457d7c5207f2abfb93b7a3ed42ef36f140" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdklib" version="31.0.0-alpha05">
<artifact name="sdklib-31.0.0-alpha05.jar">
<sha256 value="109682ca6a616f119cdf26e6e8185b691760ed05d2b29bb49bda7baa556d20c0" origin="Generated by Gradle"/>
</artifact>
<artifact name="sdklib-31.0.0-alpha05.pom">
<sha256 value="f01c68c29f7984893669fffda34d8e9957f6830a46f9d5aa1885b885f1391936" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="crash" version="30.3.0">
<artifact name="crash-30.3.0.jar">
<sha256 value="c904484c4180ef376a7f0cec5d7a57b6c785f199f15b76b2f5a2a85a0de81d20" origin="Generated by Gradle"/>
@ -2860,6 +2988,14 @@
<sha256 value="89327a2a6f4d881cdfa2e1c02d411c25cc80f8ae34807cdfb0b750c01bc28d34" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="crash" version="31.0.0-alpha05">
<artifact name="crash-31.0.0-alpha05.jar">
<sha256 value="1a940620fcd33f546200defd5347be74f7341c08563fc52a0eeeb4b8ccdd0c51" origin="Generated by Gradle"/>
</artifact>
<artifact name="crash-31.0.0-alpha05.pom">
<sha256 value="49d69d51d3fd639f42f800ace2f72fcec684924255f6f237ce6b66a218bef116" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="protos" version="30.3.0">
<artifact name="protos-30.3.0.jar">
<sha256 value="6695fe4be8c58274efbf0fa0ab9e465ceaf4f21792970d68d37591287ee7bed1" origin="Generated by Gradle"/>
@ -2908,6 +3044,14 @@
<sha256 value="d7ec8f58d5793642d91448514cdf398260e6bfeab563ad181b9d83539443b307" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="protos" version="31.0.0-alpha05">
<artifact name="protos-31.0.0-alpha05.jar">
<sha256 value="b768ddc6942edb6e1639858a2a94e5e3f08d52539e4fe1d645e8d087993520ea" origin="Generated by Gradle"/>
</artifact>
<artifact name="protos-31.0.0-alpha05.pom">
<sha256 value="f7470d15b7e038d86c44536115d9051916acb49713e239beda427f0667e116bf" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="shared" version="30.3.0">
<artifact name="shared-30.3.0.jar">
<sha256 value="4a7ee8aad5796e058a2f414993424155172689ac332cd1a999db861949e2e1de" origin="Generated by Gradle"/>
@ -2956,6 +3100,14 @@
<sha256 value="2b8879211fe6c03c5f6694aa77180ca9aa148be4d8f763395040fd8b352df732" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="shared" version="31.0.0-alpha05">
<artifact name="shared-31.0.0-alpha05.jar">
<sha256 value="4a133831501b95369e0e8b1e73b924f0b68c95e5adbce252a8eed781de65923b" origin="Generated by Gradle"/>
</artifact>
<artifact name="shared-31.0.0-alpha05.pom">
<sha256 value="e9d6ffb91551fd0b074b190e56517477e549fa92bae4295256e85ed5494fa799" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="tracker" version="30.3.0">
<artifact name="tracker-30.3.0.jar">
<sha256 value="ec43dbc6cf1e93f5999262b483cb6ec93b372010c06c3800c50d9fca903dd1c2" origin="Generated by Gradle"/>
@ -3004,6 +3156,14 @@
<sha256 value="726dacee384e1205c03bcbb4530debdcf96544d302772adf4acc85f02c85c77e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="tracker" version="31.0.0-alpha05">
<artifact name="tracker-31.0.0-alpha05.jar">
<sha256 value="a62bcf8ad3816bdc276999e80c8edd52bdb1a20bfd571d8f5f7e91fce1c74545" origin="Generated by Gradle"/>
</artifact>
<artifact name="tracker-31.0.0-alpha05.pom">
<sha256 value="002d5b444f96484280fa1cff21991e66866293f67fa5cf58f729ae264f280e1c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2" version="7.3.0-8691043">
<artifact name="aapt2-7.3.0-8691043-linux.jar">
<sha256 value="00fef9fef18fc7870e67b2bcc3ad05859a6d07ff37ea6180748276fa00ad3957" origin="Generated by Gradle"/>
@ -3044,6 +3204,14 @@
<sha256 value="4086d5accf64b8a14dd593e5c4a2a7e6ed5b7a1cd57943cb2a0b94b736ed0991" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2" version="8.0.0-alpha05-8841542">
<artifact name="aapt2-8.0.0-alpha05-8841542-linux.jar">
<sha256 value="2218a3bbaa4804e829257defe9fb824316d3667667dca938a50f5f24c04681ff" origin="Generated by Gradle"/>
</artifact>
<artifact name="aapt2-8.0.0-alpha05-8841542.pom">
<sha256 value="46efe069979b069fd85778d7cd0c21c22c95dedaacee50378dc3cd600483c35f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2-proto" version="7.0.0-beta04-7396180">
<artifact name="aapt2-proto-7.0.0-beta04-7396180.jar">
<sha256 value="1ca4f1b0f550c6c25f63c1916da84f6e7a92c66b7ad38ab1d5d49a20552a5984" origin="Generated by Gradle"/>
@ -3100,6 +3268,14 @@
<sha256 value="8fff20e0db2afb541b4773ded2750373786a499c98c1d080a8f349f79928384d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2-proto" version="8.0.0-alpha05-8841542">
<artifact name="aapt2-proto-8.0.0-alpha05-8841542.jar">
<sha256 value="d43dcac07618d16b70271ff2d1c9d8ad62f3c6c001b1a91987da48f79366e3fe" origin="Generated by Gradle"/>
</artifact>
<artifact name="aapt2-proto-8.0.0-alpha05-8841542.module">
<sha256 value="b1b1b5c4f7608280826ca691175512fefe9cacd15a92e79b4ba100727e5a170b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aaptcompiler" version="7.3.0">
<artifact name="aaptcompiler-7.3.0.jar">
<sha256 value="62a2eca00f22ad008019a3b79af6e2dc04870c47e361ef345c3821fa4ec0024e" origin="Generated by Gradle"/>
@ -3148,6 +3324,14 @@
<sha256 value="6fb0bbb35754e146f413061498ae36eea6bd838ed6b4b2532b962f63a780e24d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aaptcompiler" version="8.0.0-alpha05">
<artifact name="aaptcompiler-8.0.0-alpha05.jar">
<sha256 value="25d46c977fd6303c0b81dc6878a1ed4bd7a4869b062734d1ca03e379fed267cd" origin="Generated by Gradle"/>
</artifact>
<artifact name="aaptcompiler-8.0.0-alpha05.module">
<sha256 value="2f2c78deb4978334eeec55fac7aced6bc7cfb5f236f1ba4f64b0dada1bfaa334" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apksig" version="7.3.0">
<artifact name="apksig-7.3.0.jar">
<sha256 value="6d6a13a51ac3806c11af5f0967092055e35a67df6a74bff1544d9f5518c5ad55" origin="Generated by Gradle"/>
@ -3196,6 +3380,14 @@
<sha256 value="4bbf51ac8ee8ea4ffa6c68b0ac7b780afa71482ff9dd59c03072a8a5739d43da" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apksig" version="8.0.0-alpha05">
<artifact name="apksig-8.0.0-alpha05.jar">
<sha256 value="1556367f117415b3fbb66b3222254197b0f4aafdbc9f467497304409f0d30386" origin="Generated by Gradle"/>
</artifact>
<artifact name="apksig-8.0.0-alpha05.pom">
<sha256 value="cd0ff962bb1a7f7da1bb378a7220c18c1e1530defd3b6ebfdfb4762ca2e75e52" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apkzlib" version="7.3.0">
<artifact name="apkzlib-7.3.0.jar">
<sha256 value="415c5d5adff68b0ebd700e27c04c150683e65d5731d47fdb018eae391f70768c" origin="Generated by Gradle"/>
@ -3244,6 +3436,14 @@
<sha256 value="5d77485dc8474e8c67017d1b558e705e70c51a3fd0725b0416acf8b04d5231ce" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apkzlib" version="8.0.0-alpha05">
<artifact name="apkzlib-8.0.0-alpha05.jar">
<sha256 value="79474dbb7505515a7fe081149a119aa4c6580ac4da8dc3ea7d3675956b00fffc" origin="Generated by Gradle"/>
</artifact>
<artifact name="apkzlib-8.0.0-alpha05.pom">
<sha256 value="5990f07cab5c3136b05df65ce3cdaae3255225a80f505ef7ab56b96f8295b995" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder" version="7.3.0">
<artifact name="builder-7.3.0.jar">
<sha256 value="526e8913ef6bb14a2d6f8a6f5a0e925dc88924956a0b0f6ca1f30a98a2862909" origin="Generated by Gradle"/>
@ -3292,6 +3492,14 @@
<sha256 value="ffab84c68e513c27b5630874255a5ad91fdd915bcf28fc757ad3ffec5747acb5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder" version="8.0.0-alpha05">
<artifact name="builder-8.0.0-alpha05.jar">
<sha256 value="a91af160092ad1b08d69261a39953ea3e6a2cdbe7418905a7394cd4530e7199f" origin="Generated by Gradle"/>
</artifact>
<artifact name="builder-8.0.0-alpha05.module">
<sha256 value="4ea241d49ab44db6487085456602a0621f82a7416f92691213c46629935a1baa" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-model" version="7.3.0">
<artifact name="builder-model-7.3.0.jar">
<sha256 value="9074ac62ec2e8d6b74d9192fc2f7bfb65b20556be3dd212d0924d31177fe06e0" origin="Generated by Gradle"/>
@ -3340,6 +3548,14 @@
<sha256 value="63cffe6eef9f8e536652c67665c6360e60d1a257966080f07b9ef5a892bb42c6" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-model" version="8.0.0-alpha05">
<artifact name="builder-model-8.0.0-alpha05.jar">
<sha256 value="623d81d8e6c14373a4a9278d1ff7a6be9084dc0831e17f361c7ad950df8657b4" origin="Generated by Gradle"/>
</artifact>
<artifact name="builder-model-8.0.0-alpha05.module">
<sha256 value="45515c0cd59e6d9602625a4fa5055ef8ee1359241d71280029da87ff02cd61af" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-test-api" version="7.3.0">
<artifact name="builder-test-api-7.3.0.jar">
<sha256 value="7d45d533b0185151a72c7b0c0eb4fbf1ff9b4b055688955de5bbf2ebf692d908" origin="Generated by Gradle"/>
@ -3388,6 +3604,14 @@
<sha256 value="ef592221e3c1307423d6fec10119126f4ef1d52beb04e66b50e7cc850a459543" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-test-api" version="8.0.0-alpha05">
<artifact name="builder-test-api-8.0.0-alpha05.jar">
<sha256 value="95a550c76b5a222d01ce557df74da1c886252878190b9b1461936427a67b6027" origin="Generated by Gradle"/>
</artifact>
<artifact name="builder-test-api-8.0.0-alpha05.module">
<sha256 value="f32b0e4f0089791040dce05f3418b4439a9f09af5b218bc91764585bfc684bf9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="bundletool" version="1.11.0">
<artifact name="bundletool-1.11.0.jar">
<sha256 value="017242ad6c182317ef3984bb0f38b0732941424a7ef5320626bc9b38752a536a" origin="Generated by Gradle"/>
@ -3460,6 +3684,14 @@
<sha256 value="e25fe3e3e1a07ff2b466a38792bb906c2cd634dbd1a3c399e3e0ecda98ac547e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle" version="8.0.0-alpha05">
<artifact name="gradle-8.0.0-alpha05.jar">
<sha256 value="8aa6c790d90a4f28f604d6e2b57cbb664ecf59753aa482686c5bfe53298d996e" origin="Generated by Gradle"/>
</artifact>
<artifact name="gradle-8.0.0-alpha05.module">
<sha256 value="883aac7cfeb0647b124a0dc51d86d1e12cdcdbeac353a028ac8383c1054fb403" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-api" version="7.3.0">
<artifact name="gradle-api-7.3.0.jar">
<sha256 value="5b6d06ff7aaab3149244418b5e2ea3a3325f54dfa42c981b18bdbb4fd5b49d84" origin="Generated by Gradle"/>
@ -3508,6 +3740,14 @@
<sha256 value="f188cafe3334a8abbe9e288a97d994d9140a37bfe17e33ffcad221532d14a50f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-api" version="8.0.0-alpha05">
<artifact name="gradle-api-8.0.0-alpha05.jar">
<sha256 value="b541f40c1bb06150d087d35ab482a9dbe5b9947ec04e6c356d26856813c49c20" origin="Generated by Gradle"/>
</artifact>
<artifact name="gradle-api-8.0.0-alpha05.module">
<sha256 value="677ccc898fa560744733e2067a8853c84325d614cc3f56edd649cc10ac81fd39" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-settings-api" version="7.4.0-beta02">
<artifact name="gradle-settings-api-7.4.0-beta02.jar">
<sha256 value="baa971c12287199bcaf21bdee6afcbbab1646e0b53a556459a2ae5636a42f7bb" origin="Generated by Gradle"/>
@ -3524,6 +3764,14 @@
<sha256 value="a0013338dc29076d75b39e5e32c0eb130befdc94b6ba7c04db4c47a4f16ad216" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-settings-api" version="8.0.0-alpha05">
<artifact name="gradle-settings-api-8.0.0-alpha05.jar">
<sha256 value="cbc53f41464a356e9fbd72a5e46318d46956f976efdf711a70adb2444fc95e72" origin="Generated by Gradle"/>
</artifact>
<artifact name="gradle-settings-api-8.0.0-alpha05.module">
<sha256 value="853efddabe78607faa9c74b817eef12eb3e0fb2cfb72d11307c57cf53b7942c9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="manifest-merger" version="30.3.0">
<artifact name="manifest-merger-30.3.0.jar">
<sha256 value="704ed10b9cbdf3e57acfd19a9de2548ef19d367bf8c26cac1307814d3572cd6f" origin="Generated by Gradle"/>
@ -3572,6 +3820,14 @@
<sha256 value="35d0d6fccb8eb9f54dc974925d8b4a1a287f5e15ff3d9ec606f377e9d0bbdf27" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="manifest-merger" version="31.0.0-alpha05">
<artifact name="manifest-merger-31.0.0-alpha05.jar">
<sha256 value="86c5a3cc3dd1057b5e2722eb3ea705c030807cb037c8672b4228db28c4026114" origin="Generated by Gradle"/>
</artifact>
<artifact name="manifest-merger-31.0.0-alpha05.module">
<sha256 value="261066735b8fe5812825c559ab2d454d32846774a9328ab9213d60fc6c3d8bd4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="transform-api" version="2.0.0-deprecated-use-gradle-api">
<artifact name="transform-api-2.0.0-deprecated-use-gradle-api.jar">
<sha256 value="4de4a3d05e1c534c2db9e4588bf34082bb2bd232d8abb9727c430290ce225740" origin="Generated by Gradle"/>
@ -3644,6 +3900,14 @@
<sha256 value="822cc6259acc9a0a6fc66f20f46d8e78606cfccc4fd603ce2aed0a0ba5a0add9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.ddms" name="ddmlib" version="31.0.0-alpha05">
<artifact name="ddmlib-31.0.0-alpha05.jar">
<sha256 value="a016411940a01d3b4eacac75aa2617ce06420a4193cf92b53b306e9f730191cd" origin="Generated by Gradle"/>
</artifact>
<artifact name="ddmlib-31.0.0-alpha05.pom">
<sha256 value="56797daa2e1513d9555291a9a51efba7cc5d8c64a8794ba183c002cea363f46a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.external.com-intellij" name="intellij-core" version="30.3.0-beta05">
<artifact name="intellij-core-30.3.0-beta05.jar">
<sha256 value="8bb2aecfb8dd2208fe341a731ac44a9ec83f989c12449b82dff1eab493de0408" origin="Generated by Gradle"/>
@ -3740,6 +4004,14 @@
<sha256 value="f64362036a50297f1eb2995523b94c43bc2004705a23608b1d8cd5c608cef079" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.layoutlib" name="layoutlib-api" version="31.0.0-alpha05">
<artifact name="layoutlib-api-31.0.0-alpha05.jar">
<sha256 value="8460de6a7089d0f16744509450d98fd9a097f5e4189ec16f4030030a3ebd5efc" origin="Generated by Gradle"/>
</artifact>
<artifact name="layoutlib-api-31.0.0-alpha05.pom">
<sha256 value="4f9f2b26328789a7520530cc808a46a16e751741af4149cff9421891ec778bd0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint" version="30.3.0-beta05">
<artifact name="lint-30.3.0-beta05.jar">
<sha256 value="685080782f6368cc68ac74db065b4c5c59d9c82599dc34be2ec39e425251b864" origin="Generated by Gradle"/>
@ -3852,6 +4124,14 @@
<sha256 value="a61a9833eb165187a0bc1946f95fef6bfdbba8cce8af0244c1b6218ca7428f49" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-model" version="31.0.0-alpha05">
<artifact name="lint-model-31.0.0-alpha05.jar">
<sha256 value="0821162ba4964ef94520defcc10032f86f91c9beeb5325f303f66be53ccf8e4b" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-model-31.0.0-alpha05.pom">
<sha256 value="819c7b23f766b210f7e17227ca0d49ed86f74d6b8b0f3bcd7467ad52e8a686c9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-typedef-remover" version="30.3.0">
<artifact name="lint-typedef-remover-30.3.0.jar">
<sha256 value="0275a7633d55972fe46e3395819b9014cf04e2035be89e4a6eba6ac9559351ff" origin="Generated by Gradle"/>
@ -3900,6 +4180,14 @@
<sha256 value="e60b668de350cee28369b9661617f341003986e47e274eb5410f380fe8bcfacb" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-typedef-remover" version="31.0.0-alpha05">
<artifact name="lint-typedef-remover-31.0.0-alpha05.jar">
<sha256 value="26c9384cd0cc727c0985097baf4fbcd90d556e06bb0f586c175ca9912fbc66ff" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-typedef-remover-31.0.0-alpha05.pom">
<sha256 value="cef51086f604f6668b08a5fed0634a19b2a11e067ed51a115527ae3760f7c8d0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="30.3.0">
<artifact name="android-device-provider-ddmlib-proto-30.3.0.jar">
<sha256 value="ea7615ea6db7602e937a4583fc6818162b108fb3cad6fe615a8f5ba82cd28dad" origin="Generated by Gradle"/>
@ -3948,6 +4236,14 @@
<sha256 value="f654adcd97ec8c6d02292784dd8d8c279a22aa7105d6bd7b3760e1ac370ac12a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="31.0.0-alpha05">
<artifact name="android-device-provider-ddmlib-proto-31.0.0-alpha05.jar">
<sha256 value="332794db1e7702c9689c8075532f235cccbf57d70aba29cbd7d378e781bad37f" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-device-provider-ddmlib-proto-31.0.0-alpha05.pom">
<sha256 value="eb6568efdc4b9e7ff589049af2d501a0a6bef8f36851b4f04e39dd0765e088ef" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-gradle-proto" version="30.3.0">
<artifact name="android-device-provider-gradle-proto-30.3.0.jar">
<sha256 value="a71cb4625a39cb8ce04bc0833aefefb95638f9c7029f664da6ab9f91be3b9cd9" origin="Generated by Gradle"/>
@ -3996,6 +4292,14 @@
<sha256 value="20ea8b1e42d002193e9aa9ab34eb6cf3653db68dc6820d8f2586f1b55ee6d3c4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-gradle-proto" version="31.0.0-alpha05">
<artifact name="android-device-provider-gradle-proto-31.0.0-alpha05.jar">
<sha256 value="48f8b288d3b3195199ded91cbaa67a28be2fb9d317da187b88a7d4ffb505a578" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-device-provider-gradle-proto-31.0.0-alpha05.pom">
<sha256 value="c59a906fd4c48ad74b848cae552f49c91cdb7789878c7bbed53be0203bfe75aa" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="30.3.0">
<artifact name="android-test-plugin-host-additional-test-output-proto-30.3.0.jar">
<sha256 value="31c5a0b3a1323970eaacd771727ec13863b6dbe60079e0c0d029816b6413766d" origin="Generated by Gradle"/>
@ -4044,6 +4348,14 @@
<sha256 value="e4f9c9ab1e870f59dc544762c57d1777d5416d2b53126030b52bda2d468f8511" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="31.0.0-alpha05">
<artifact name="android-test-plugin-host-additional-test-output-proto-31.0.0-alpha05.jar">
<sha256 value="6c4d0907badf886cbea14e56e8d08ce232ee775403ad811c27a280520d7efa1a" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-host-additional-test-output-proto-31.0.0-alpha05.pom">
<sha256 value="3bd0a864eeb8fc94f323ce0a73163ea1f565105f83766f01b61d139dec024c0e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="30.3.0">
<artifact name="android-test-plugin-host-coverage-proto-30.3.0.jar">
<sha256 value="18958a29190be8c685e5ae5b25d994280f3d8e019b3cfd921f0b492efd18893b" origin="Generated by Gradle"/>
@ -4092,6 +4404,14 @@
<sha256 value="795f141c190f9bd7af5f4ac4a4b5db42c10c359d6d15b8356eb79c8ff6824ae4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="31.0.0-alpha05">
<artifact name="android-test-plugin-host-coverage-proto-31.0.0-alpha05.jar">
<sha256 value="22686a7d1775171e76534ab8f40f9c9677cabc77321088e3268cb9cb74d0e5c6" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-host-coverage-proto-31.0.0-alpha05.pom">
<sha256 value="7c2ed5d7a2e5cb06f53624ddf0383fbffb29be0d03920b7accbde26301fe680e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-retention-proto" version="30.3.0">
<artifact name="android-test-plugin-host-retention-proto-30.3.0.jar">
<sha256 value="c34f57d6f48971ee71b61ea6f17956934cc2de31dd83c84ae7bfec681e1f99d4" origin="Generated by Gradle"/>
@ -4140,6 +4460,14 @@
<sha256 value="cacab726bd07f7e2f0ca98b6fdfd1bb20e3d9662641225736da53a8626716568" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-retention-proto" version="31.0.0-alpha05">
<artifact name="android-test-plugin-host-retention-proto-31.0.0-alpha05.jar">
<sha256 value="031c4c933c5e53ddb863b960074ba36ec040a2464f208d4f5d390d2b227f6505" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-host-retention-proto-31.0.0-alpha05.pom">
<sha256 value="782bc860953d5f4128bf0f752a96e9c3aca38022a7f8a9b9b011030030da8ed5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="30.3.0">
<artifact name="android-test-plugin-result-listener-gradle-proto-30.3.0.jar">
<sha256 value="38d6b8fb2ca578c86aedb66b170ec61bff1e74eef238349702fdd5dabb1a73d8" origin="Generated by Gradle"/>
@ -4188,6 +4516,14 @@
<sha256 value="55eb71aa6c04296d9470ff84d83d1f69f9e0928338911478c27ea74e1a7e7792" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="31.0.0-alpha05">
<artifact name="android-test-plugin-result-listener-gradle-proto-31.0.0-alpha05.jar">
<sha256 value="38c664b016fc380676ab80fb9da0c42f13b049cfd98d16467a2049fe85072e70" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-result-listener-gradle-proto-31.0.0-alpha05.pom">
<sha256 value="435ca94295fdb653e7211e21c50e20ce5409167bd65c118964c5e5f289e9d757" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.arthenica" name="ffmpeg-kit-min" version="4.5.1-1.LTS">
<artifact name="ffmpeg-kit-min-4.5.1-1.LTS.aar">
<sha256 value="e957b85f04d987ddbee104a56cbc7f4e243ba15f615d93cae88c87ec935399d8" origin="Generated by Gradle"/>
@ -4868,6 +5204,14 @@
<sha256 value="13ba6554b7cedba01f52527e2a7fc6ef459e89729196785e86239c312adf2f8d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_annotations" version="2.10.0">
<artifact name="error_prone_annotations-2.10.0.jar">
<sha256 value="a249d4d25dfb86d41e6c82fc335df580189f0c9feeabdc53233fc1e5060724a1" origin="Generated by Gradle"/>
</artifact>
<artifact name="error_prone_annotations-2.10.0.pom">
<sha256 value="d680dc9f578a77a6dcd992b2c3250eb168a7214cf27f8f0cac1f06526710c0cc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_annotations" version="2.11.0">
<artifact name="error_prone_annotations-2.11.0.jar">
<sha256 value="721cb91842b46fa056847d104d5225c8b8e1e8b62263b993051e1e5a0137b7ec" origin="Generated by Gradle"/>
@ -4897,6 +5241,11 @@
<sha256 value="7ea54bfa260ea03d4f084158d284ac8737a5507f77c80f9634da8bdcc018474f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_annotations" version="2.5.1">
<artifact name="error_prone_annotations-2.5.1.pom">
<sha256 value="983ad7fe0fa6f6f91e2d20477f5089eccc3f4d8ec6c51d6eb45583970e279d3c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_annotations" version="2.7.1">
<artifact name="error_prone_annotations-2.7.1.jar">
<sha256 value="cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3" origin="Generated by Gradle"/>
@ -4905,6 +5254,11 @@
<sha256 value="31a872e1149c5f3a8bc05fb4de455e5ea608ecfad1af222cb7637ca6c762ee25" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_parent" version="2.10.0">
<artifact name="error_prone_parent-2.10.0.pom">
<sha256 value="07891a87c490f900c12097bee95ec1cb6e071c8a7df810666387e0c772f089fa" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_parent" version="2.11.0">
<artifact name="error_prone_parent-2.11.0.pom">
<sha256 value="8283f0cb44c624a79d330b6fd80b8b8a715a68b3685c9a951c3de837d4540551" origin="Generated by Gradle"/>
@ -4925,6 +5279,11 @@
<sha256 value="dedda0cda4da752ac80de0d21c829cd3fb919bd2256814260eb3abce2f4e869a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_parent" version="2.5.1">
<artifact name="error_prone_parent-2.5.1.pom">
<sha256 value="a17a7677482a3a51a45f5e08140072acd332ccb12f23899b0052d80a729c2e52" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_parent" version="2.7.1">
<artifact name="error_prone_parent-2.7.1.pom">
<sha256 value="0a6e242e28104e8093405ae37969660a438b71c4c1b73fc4ff716db89da88de6" origin="Generated by Gradle"/>
@ -5063,6 +5422,11 @@
<sha256 value="f36e5bc0bc0e6b0151fa83b17cd94dcb5a6b8c9e1b1499dc086edca99e99b805" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.protobuf" name="protobuf-bom" version="3.19.2">
<artifact name="protobuf-bom-3.19.2.pom">
<sha256 value="a84ad31e071ac64d9792cceef1bb3ea60bc2caa9eb94f3018737bc32ec8fffe2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.protobuf" name="protobuf-java" version="3.17.2">
<artifact name="protobuf-java-3.17.2.jar">
<sha256 value="cf697452fbe7f6bdfdf65043797a16cd627b1dd4248be4b572fcb73f8c032cc0" origin="Generated by Gradle"/>
@ -5071,6 +5435,14 @@
<sha256 value="721eef84bdd288eda3562af626ee2cb3426beaf58c5369710b54f51d484568fa" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.protobuf" name="protobuf-java" version="3.19.2">
<artifact name="protobuf-java-3.19.2.jar">
<sha256 value="3446cbfa13795228bc6549b91a409f27cdf6913d1c8f03e0f99572988623a04b" origin="Generated by Gradle"/>
</artifact>
<artifact name="protobuf-java-3.19.2.pom">
<sha256 value="0a6ea5df57d87e3042950525204310ba27581cf351d246a7eff2d21b7b4e1641" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.protobuf" name="protobuf-java-util" version="3.17.2">
<artifact name="protobuf-java-util-3.17.2.jar">
<sha256 value="849925333aac23f46f9a154a52e441117017d5673e04e5636993bcc3cf1924d9" origin="Generated by Gradle"/>
@ -5079,11 +5451,24 @@
<sha256 value="a5d6d2c74cf83c8ef4be4532b86f15ecb1dafbaad64e6da427c090dd4bf6c7bd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.protobuf" name="protobuf-java-util" version="3.19.2">
<artifact name="protobuf-java-util-3.19.2.jar">
<sha256 value="9588d67db391b19cffb4ec658d9365ac5362b2089661c157fd27f21380cdd1e8" origin="Generated by Gradle"/>
</artifact>
<artifact name="protobuf-java-util-3.19.2.pom">
<sha256 value="68fc152fed1e25954430f8524d5fd3ee1b31cf5b1141c1dcafc409f703e09cec" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.protobuf" name="protobuf-parent" version="3.17.2">
<artifact name="protobuf-parent-3.17.2.pom">
<sha256 value="8d97664bbc2cf853baa89c28e07082e2e4ae7c4d2dca89a63b28bda093cdee86" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.protobuf" name="protobuf-parent" version="3.19.2">
<artifact name="protobuf-parent-3.19.2.pom">
<sha256 value="25395819097bcac83a43eac8bc2a76681c85869ac9799111204d650d7df0c086" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.testing.platform" name="core-proto" version="0.0.8-alpha07">
<artifact name="core-proto-0.0.8-alpha07.jar">
<sha256 value="4645833caf5cf615d5ddb01a48f2188ec988370f103969e2fb931f8319bf3c0c" origin="Generated by Gradle"/>
@ -5631,6 +6016,14 @@
<sha256 value="e9c53f52f3a2d486afc1cb036aaa2744c0f9da52b3fe7cdc1dccf257bd0c9205" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-api" version="1.45.1">
<artifact name="grpc-api-1.45.1.jar">
<sha256 value="dc381fe018fb10bba8cc66f98db1050a70cee49a8270017c22ec6f77b10f13e5" origin="Generated by Gradle"/>
</artifact>
<artifact name="grpc-api-1.45.1.pom">
<sha256 value="5b610027b9f691f63542479fb9c3510400fd11c1ee13182f31974df1701c056b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-context" version="1.39.0">
<artifact name="grpc-context-1.39.0.jar">
<sha256 value="97fe70b4e7da86ed4fe3deb16d83fc89c7e5b764ebac8c9dd5d51dd4b5aa920c" origin="Generated by Gradle"/>
@ -5639,6 +6032,14 @@
<sha256 value="fdf5e3ed7e2fe56c202168c81b603a69a9e1434fa87bc5b889d4e7211217425f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-context" version="1.45.1">
<artifact name="grpc-context-1.45.1.jar">
<sha256 value="262b8d0d23551ccb0c814f89794c73e9b5333ce71eab28eec6a9fc530613e15e" origin="Generated by Gradle"/>
</artifact>
<artifact name="grpc-context-1.45.1.pom">
<sha256 value="b56f9f46a11413672a58b034162211d61abe10ef1c133c7fe254280f30f1c119" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-core" version="1.39.0">
<artifact name="grpc-core-1.39.0.jar">
<sha256 value="3febeb19e18873369efa9bf08edd4e49c4fa3ebdad44e704ac6ea352b62b6be2" origin="Generated by Gradle"/>
@ -5647,6 +6048,14 @@
<sha256 value="3061586b03fbd8489a8f6820175f0732b9ef1c36692cd5b6c47d25e41c5de29e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-core" version="1.45.1">
<artifact name="grpc-core-1.45.1.jar">
<sha256 value="8dd8353e2a55678581ec92415c2b92cc8dafb437647dee57a49e36d1e8345b9e" origin="Generated by Gradle"/>
</artifact>
<artifact name="grpc-core-1.45.1.pom">
<sha256 value="6039fc5f3c897ea140940c129075c828833ce31334f134347db15991cda21ec9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-netty" version="1.39.0">
<artifact name="grpc-netty-1.39.0.jar">
<sha256 value="672da08c944010494c29ce7ee8323194949d8520e4ea4fe0e6d44e65b9489700" origin="Generated by Gradle"/>
@ -5655,6 +6064,14 @@
<sha256 value="2128d47f127e3b0fcadcc0d19b9b4770975dfbe8c7fe2c71e93a607fadf7c8c2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-netty" version="1.45.1">
<artifact name="grpc-netty-1.45.1.jar">
<sha256 value="0fef3ca6747242624cad219fdd13b5dbca121de04ea122f5cb1cb5082d998313" origin="Generated by Gradle"/>
</artifact>
<artifact name="grpc-netty-1.45.1.pom">
<sha256 value="35103fe65cfcd5ddc8fbedaeead923150d539d31a884235c716ec5c9bbb9a196" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-protobuf" version="1.39.0">
<artifact name="grpc-protobuf-1.39.0.jar">
<sha256 value="9a9d94b93fbe8d34ca375108ca147d7b35a53da05109f412d1875448f4488244" origin="Generated by Gradle"/>
@ -5663,6 +6080,14 @@
<sha256 value="a27c0d8719a6b37fd97879559fc2dd0b0261c70ddbe578571be8843dc6592d9b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-protobuf" version="1.45.1">
<artifact name="grpc-protobuf-1.45.1.jar">
<sha256 value="f59fe662030e30923a91c5d80bf3a25486be2740d08b6757575e7c4213782694" origin="Generated by Gradle"/>
</artifact>
<artifact name="grpc-protobuf-1.45.1.pom">
<sha256 value="83ae80dda378b24741da2380edd4b0a86932570137a8c1e7c14050e840cc9ed2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-protobuf-lite" version="1.39.0">
<artifact name="grpc-protobuf-lite-1.39.0.jar">
<sha256 value="94d9c5ee88abe06a741b4e62d05df6251409e2ccc8e510575891ce3d780c164e" origin="Generated by Gradle"/>
@ -5671,6 +6096,14 @@
<sha256 value="4d44961933b9b2f8d235b763d77803231cb5bf3359f8ec013e3c343388b22c09" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-protobuf-lite" version="1.45.1">
<artifact name="grpc-protobuf-lite-1.45.1.jar">
<sha256 value="874afc4cac1161fdd38121ffd56e58e8c85f5149c13954ab672d6b4ae24c8b9f" origin="Generated by Gradle"/>
</artifact>
<artifact name="grpc-protobuf-lite-1.45.1.pom">
<sha256 value="be21472b47897ef686c1a9768ee94c6c0ad76df54796cf7bb2124458379d5c0a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-stub" version="1.39.0">
<artifact name="grpc-stub-1.39.0.jar">
<sha256 value="c85782e20da6eadbf07537f35d52bf2abafd891ae14c27b7d36a4d450575eeb3" origin="Generated by Gradle"/>
@ -5679,6 +6112,14 @@
<sha256 value="df0ff24c5cf3ec470287840f45a1ffdb6e02fad6dddefdeedd584f6499dd98e7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.grpc" name="grpc-stub" version="1.45.1">
<artifact name="grpc-stub-1.45.1.jar">
<sha256 value="4d9d82c59b90383c17f152ba03123c6b4b5a885f933da9a05a05f5f2c9e5b4a0" origin="Generated by Gradle"/>
</artifact>
<artifact name="grpc-stub-1.45.1.pom">
<sha256 value="63d008f7e41e62947807d0460c6c16971e73cf2dcbab60b88b3602deca90bb4a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-buffer" version="4.1.52.Final">
<artifact name="netty-buffer-4.1.52.Final.jar">
<sha256 value="41ca1035aee6e0f8177597d0a7610a5aa2c6e6fac744ac81fde4e5e58f639675" origin="Generated by Gradle"/>
@ -5687,6 +6128,14 @@
<sha256 value="585266cbf6e147e3fe209300a70d5f0c4db64ccd702bc00690c42a33defe0060" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-buffer" version="4.1.72.Final">
<artifact name="netty-buffer-4.1.72.Final.jar">
<sha256 value="568ff7cd9d8e2284ec980730c88924f686642929f8f219a74518b4e64755f3a1" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-buffer-4.1.72.Final.pom">
<sha256 value="459301da749cb5eaf721b5cac39c0660b2d59fc66264091536e121cb18d8b413" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec" version="4.1.52.Final">
<artifact name="netty-codec-4.1.52.Final.jar">
<sha256 value="3c7e78dcce7e353d86ac7dba2c251ab5cddd4eb86eaa889cfe4229782b828e52" origin="Generated by Gradle"/>
@ -5695,6 +6144,14 @@
<sha256 value="3e4aa78b0c8308bede6f6e17ecfee6126b2abdeadb0e3da25aae67756966fa54" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec" version="4.1.72.Final">
<artifact name="netty-codec-4.1.72.Final.jar">
<sha256 value="5d8591ca271a1e9c224e8de3873aa9936acb581ee0db514e7dc18523df36d16c" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-4.1.72.Final.pom">
<sha256 value="2d88d1a230acca4797454782c5226e1612721d4e73927c142fde95a29d49542a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http" version="4.1.52.Final">
<artifact name="netty-codec-http-4.1.52.Final.jar">
<sha256 value="b5da28d0ea878b07d3111acf5e4faf41288ef2302b26414190fdd1a7d973c80c" origin="Generated by Gradle"/>
@ -5703,6 +6160,14 @@
<sha256 value="4c7c220ae780374c781c82d1e2b79c8eb744da903bd2ad82d4a26bb149180c0b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http" version="4.1.72.Final">
<artifact name="netty-codec-http-4.1.72.Final.jar">
<sha256 value="fa6fec88010bfaf6a7415b5364671b6b18ffb6b35a986ab97b423fd8c3a0174b" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-http-4.1.72.Final.pom">
<sha256 value="a8cd15659a5720013918843fc8bf29f38a81b83e34816f82e397a4db3c864f53" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http2" version="4.1.52.Final">
<artifact name="netty-codec-http2-4.1.52.Final.jar">
<sha256 value="eb527a42d2289d12dee6d4753ca2715978a37bbb41c71915ce4e9539c49f93a1" origin="Generated by Gradle"/>
@ -5711,6 +6176,14 @@
<sha256 value="1f9974433d8610b987b25ba3ebe9f91b599e220e0d44acc298cf39f055e8f3d3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http2" version="4.1.72.Final">
<artifact name="netty-codec-http2-4.1.72.Final.jar">
<sha256 value="c89a70500f59e8563e720aaa808263a514bd9e2bd91ba84eab8c2ccb45f234b2" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-http2-4.1.72.Final.pom">
<sha256 value="bfbac371e903e3c72206d985a621fdc85070b383cd954c426ff963e512675914" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-socks" version="4.1.52.Final">
<artifact name="netty-codec-socks-4.1.52.Final.jar">
<sha256 value="fecc577e0bb7721d6768cfc1846ee172911d16ab80dfbd9995d9657a551d4ea7" origin="Generated by Gradle"/>
@ -5719,6 +6192,14 @@
<sha256 value="1d96921ae95e64a03c4ed75e9ea57b27ae30ab527ef92212cfda597267ce39f9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-socks" version="4.1.72.Final">
<artifact name="netty-codec-socks-4.1.72.Final.jar">
<sha256 value="33c4cd134858aabc5afe5dc440c8880186017dc4dc541f34c8e16bffc5546d07" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-socks-4.1.72.Final.pom">
<sha256 value="b3eb467e64b7db5d09f55c58b87d1b31aeb6a9f42c28c2d68e1f131fd9aa167b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-common" version="4.1.52.Final">
<artifact name="netty-common-4.1.52.Final.jar">
<sha256 value="0d1f101e4db7d530ed04d7cabd57d95c0750f059bb6b3fadfed0c80d4734c717" origin="Generated by Gradle"/>
@ -5727,6 +6208,14 @@
<sha256 value="3658eb7929a4672b59afee222bae7a1227454c6fa39339ca4cac7a5ef30f3aa7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-common" version="4.1.72.Final">
<artifact name="netty-common-4.1.72.Final.jar">
<sha256 value="8adb4c291260ceb2859a68c49f0adeed36bf49587608e2b81ecff6aaf06025e9" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-common-4.1.72.Final.pom">
<sha256 value="d6d302491f39848bf1889bf2137e6e7e77d96c394af5baf8ac6a0901572cda75" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler" version="4.1.52.Final">
<artifact name="netty-handler-4.1.52.Final.jar">
<sha256 value="2cdc21fbfae04940c85929039779c93f51f618f5efb216079319dcfcf32a55c1" origin="Generated by Gradle"/>
@ -5735,6 +6224,14 @@
<sha256 value="b374bba0bca6312fe6dbefb1a013ac7457c1a80c9f18ebcc059bdc2deb163147" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler" version="4.1.72.Final">
<artifact name="netty-handler-4.1.72.Final.jar">
<sha256 value="9cb6012af7e06361d738ac4e3bdc49a158f8cf87d9dee0f2744056b7d99c28d5" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-handler-4.1.72.Final.pom">
<sha256 value="2849ebc75cc07cad1391de74fcff47b42f055bb67678585c69c2c1b12b323ee9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler-proxy" version="4.1.52.Final">
<artifact name="netty-handler-proxy-4.1.52.Final.jar">
<sha256 value="e8d07863ceb4bd4806e255a1d532c8650f0f3b2d4d006ad6d21812e941b42fdc" origin="Generated by Gradle"/>
@ -5743,11 +6240,24 @@
<sha256 value="696e3501d1ac73aa382555d1bd6c2c6831ad5fe3db106e5c82e808292f5be9b8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler-proxy" version="4.1.72.Final">
<artifact name="netty-handler-proxy-4.1.72.Final.jar">
<sha256 value="ce1123250450d2b17815748177fd36843690b8cd703b47e6dc12d159d86da30d" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-handler-proxy-4.1.72.Final.pom">
<sha256 value="41d76f919b4738237da368c90d0aefbf44863b6bba7487ecb97d6c23f74b9338" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-parent" version="4.1.52.Final">
<artifact name="netty-parent-4.1.52.Final.pom">
<sha256 value="be4bea6f606d47a8a5c3573047d04426d33b9db591baa6bce1e230fe223f903e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-parent" version="4.1.72.Final">
<artifact name="netty-parent-4.1.72.Final.pom">
<sha256 value="ed4132e36eda981fa7990376dafc7d7d680371260ed920b2c041d6b1ed230d85" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver" version="4.1.52.Final">
<artifact name="netty-resolver-4.1.52.Final.jar">
<sha256 value="6eeb72a233979cb45b0b4d6d46c5a41332c57c0cf8a803b1efc60dbbecba09a6" origin="Generated by Gradle"/>
@ -5756,6 +6266,27 @@
<sha256 value="9b082e55f2f2711a84aac6702ce700b79fc90450381238e602b396ac76510152" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver" version="4.1.72.Final">
<artifact name="netty-resolver-4.1.72.Final.jar">
<sha256 value="6474598aab7cc9d8d6cfa06c05bd1b19adbf7f8451dbdd73070b33a6c60b1b90" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-resolver-4.1.72.Final.pom">
<sha256 value="e5014c5e1e7f1845c2c6f5a060fa38debd7b67f011612dfc0239aa28e005fe14" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-tcnative-classes" version="2.0.46.Final">
<artifact name="netty-tcnative-classes-2.0.46.Final.jar">
<sha256 value="d3ec888dcc4ac7915bf88b417c5e04fd354f4311032a748a6882df09347eed9a" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-tcnative-classes-2.0.46.Final.pom">
<sha256 value="40a7319c07946d47997f82b34cfea6db20d4583c8ac99dc1ff8c12a4db685726" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-tcnative-parent" version="2.0.46.Final">
<artifact name="netty-tcnative-parent-2.0.46.Final.pom">
<sha256 value="c6b5ee3a01a44d969b18a478a8764619f33a68e4fb5c0bbf6dddc5f6a611376e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport" version="4.1.52.Final">
<artifact name="netty-transport-4.1.52.Final.jar">
<sha256 value="9a3e6f8c0e55de363eb1ea10fe781797eca394e62186df2ae0b4eb2bce0b4541" origin="Generated by Gradle"/>
@ -5764,6 +6295,14 @@
<sha256 value="58a8aaa6566d95660046ce4c8ec8c4c711182bea7d8b7e994968e08418ddb37f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport" version="4.1.72.Final">
<artifact name="netty-transport-4.1.72.Final.jar">
<sha256 value="c5fb68e9a65b6e8a516adfcb9fa323479ee7b4d9449d8a529d2ecab3d3711d5a" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-4.1.72.Final.pom">
<sha256 value="cf29bd872a8c2afbcdb74b27a9e90e67195685f57011d5dfc475a4f261794db4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.perfmark" name="perfmark-api" version="0.23.0">
<artifact name="perfmark-api-0.23.0.jar">
<sha256 value="c705b5c10c18ff3032b9e81742bc2f6b0e5607f6a6dfc0c8ad0cff75d4913042" origin="Generated by Gradle"/>
@ -6127,6 +6666,11 @@
<sha256 value="c554e7008e4517c7ef54e005cc8b74f4c87a54a0ea2c6f57be5d0569df51936b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.apache.httpcomponents" name="httpcomponents-core" version="4.4.15">
<artifact name="httpcomponents-core-4.4.15.pom">
<sha256 value="60d43727a6174804c8ae17f93e9cc632e47f3c4110a4c54b9fafc8cd9a8ca509" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.apache.httpcomponents" name="httpcomponents-parent" version="10">
<artifact name="httpcomponents-parent-10.pom">
<sha256 value="caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa" origin="Generated by Gradle"/>
@ -6150,6 +6694,14 @@
<sha256 value="8f812d9fa7b72a3d4aa7f825278932a5df344b42a6d8398905879431a1bf9a97" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.apache.httpcomponents" name="httpcore" version="4.4.15">
<artifact name="httpcore-4.4.15.jar">
<sha256 value="3cbaed088c499a10f96dde58f39dc0e7985171abd88138ca1655a872011bb142" origin="Generated by Gradle"/>
</artifact>
<artifact name="httpcore-4.4.15.pom">
<sha256 value="29acfeaa8a88bb620fc34371a30b3d40328dc5a79cc74902cf446c0943c1be6b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.apache.httpcomponents" name="httpmime" version="4.5.6">
<artifact name="httpmime-4.5.6.jar">
<sha256 value="0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e" origin="Generated by Gradle"/>