Merge changes from topic "cronet_in_tethering"

* changes:
  Rename org.chromium.net.cronet to framework-cronet
  Add Cronet .so and .jar to tethering apex
diff --git a/Tethering/Android.bp b/Tethering/Android.bp
index 3ab1ec2..f203191 100644
--- a/Tethering/Android.bp
+++ b/Tethering/Android.bp
@@ -21,11 +21,15 @@
 java_defaults {
     name: "TetheringApiLevel",
     sdk_version: "module_current",
-    target_sdk_version: "33",
     min_sdk_version: "30",
 }
 
 java_defaults {
+    name: "TetheringReleaseTargetSdk",
+    target_sdk_version: "33",
+}
+
+java_defaults {
     name: "TetheringExternalLibs",
     // Libraries not including Tethering's own framework-tethering (different flavors of that one
     // are needed depending on the build rule)
@@ -81,7 +85,8 @@
     defaults: [
         "ConnectivityNextEnableDefaults",
         "TetheringAndroidLibraryDefaults",
-        "TetheringApiLevel"
+        "TetheringApiLevel",
+        "TetheringReleaseTargetSdk"
     ],
     static_libs: [
         "NetworkStackApiCurrentShims",
@@ -94,7 +99,8 @@
     name: "TetheringApiStableLib",
     defaults: [
         "TetheringAndroidLibraryDefaults",
-        "TetheringApiLevel"
+        "TetheringApiLevel",
+        "TetheringReleaseTargetSdk"
     ],
     static_libs: [
         "NetworkStackApiStableShims",
@@ -180,7 +186,12 @@
 // Non-updatable tethering running in the system server process for devices not using the module
 android_app {
     name: "InProcessTethering",
-    defaults: ["TetheringAppDefaults", "TetheringApiLevel", "ConnectivityNextEnableDefaults"],
+    defaults: [
+        "TetheringAppDefaults",
+        "TetheringApiLevel",
+        "ConnectivityNextEnableDefaults",
+        "TetheringReleaseTargetSdk"
+    ],
     static_libs: ["TetheringApiCurrentLib"],
     certificate: "platform",
     manifest: "AndroidManifest_InProcess.xml",
diff --git a/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java b/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java
index ebc9d26..6a5089d 100644
--- a/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java
+++ b/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java
@@ -403,6 +403,18 @@
                 return null;
             }
         }
+
+        /** Get error BPF map. */
+        @Nullable public IBpfMap<S32, S32> getBpfErrorMap() {
+            if (!isAtLeastS()) return null;
+            try {
+                return new BpfMap<>(TETHER_ERROR_MAP_PATH,
+                    BpfMap.BPF_F_RDONLY, S32.class, S32.class);
+            } catch (ErrnoException e) {
+                Log.e(TAG, "Cannot create error map: " + e);
+                return null;
+            }
+        }
     }
 
     @VisibleForTesting
@@ -1287,13 +1299,15 @@
     }
 
     private void dumpCounters(@NonNull IndentingPrintWriter pw) {
-        if (!mDeps.isAtLeastS()) {
-            pw.println("No counter support");
-            return;
-        }
-        try (IBpfMap<S32, S32> map = new BpfMap<>(TETHER_ERROR_MAP_PATH, BpfMap.BPF_F_RDONLY,
-                S32.class, S32.class)) {
-
+        try (IBpfMap<S32, S32> map = mDeps.getBpfErrorMap()) {
+            if (map == null) {
+                pw.println("No error counter support");
+                return;
+            }
+            if (map.isEmpty()) {
+                pw.println("<empty>");
+                return;
+            }
             map.forEach((k, v) -> {
                 String counterName;
                 try {
@@ -1307,7 +1321,7 @@
                 if (v.val > 0) pw.println(String.format("%s: %d", counterName, v.val));
             });
         } catch (ErrnoException | IOException e) {
-            pw.println("Error dumping counter map: " + e);
+            pw.println("Error dumping error counter map: " + e);
         }
     }
 
diff --git a/Tethering/tests/unit/src/android/net/ip/IpServerTest.java b/Tethering/tests/unit/src/android/net/ip/IpServerTest.java
index 5f4454b..f0d9057 100644
--- a/Tethering/tests/unit/src/android/net/ip/IpServerTest.java
+++ b/Tethering/tests/unit/src/android/net/ip/IpServerTest.java
@@ -53,6 +53,7 @@
 import static org.mockito.Matchers.anyBoolean;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.clearInvocations;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
@@ -99,6 +100,7 @@
 import com.android.net.module.util.InterfaceParams;
 import com.android.net.module.util.NetworkStackConstants;
 import com.android.net.module.util.SharedLog;
+import com.android.net.module.util.Struct.S32;
 import com.android.net.module.util.bpf.Tether4Key;
 import com.android.net.module.util.bpf.Tether4Value;
 import com.android.net.module.util.bpf.TetherStatsKey;
@@ -108,6 +110,7 @@
 import com.android.net.module.util.ip.IpNeighborMonitor.NeighborEvent;
 import com.android.net.module.util.ip.IpNeighborMonitor.NeighborEventConsumer;
 import com.android.networkstack.tethering.BpfCoordinator;
+import com.android.networkstack.tethering.BpfCoordinator.ClientInfo;
 import com.android.networkstack.tethering.BpfCoordinator.Ipv6ForwardingRule;
 import com.android.networkstack.tethering.PrivateAddressCoordinator;
 import com.android.networkstack.tethering.Tether6Value;
@@ -197,6 +200,7 @@
     @Mock private BpfMap<TetherStatsKey, TetherStatsValue> mBpfStatsMap;
     @Mock private BpfMap<TetherLimitKey, TetherLimitValue> mBpfLimitMap;
     @Mock private BpfMap<TetherDevKey, TetherDevValue> mBpfDevMap;
+    @Mock private BpfMap<S32, S32> mBpfErrorMap;
 
     @Captor private ArgumentCaptor<DhcpServingParamsParcel> mDhcpParamsCaptor;
 
@@ -360,6 +364,11 @@
                     public BpfMap<TetherDevKey, TetherDevValue> getBpfDevMap() {
                         return mBpfDevMap;
                     }
+
+                    @Nullable
+                    public BpfMap<S32, S32> getBpfErrorMap() {
+                        return mBpfErrorMap;
+                    }
                 };
         mBpfCoordinator = spy(new BpfCoordinator(mBpfDeps));
 
@@ -1520,4 +1529,56 @@
         verify(mBpfCoordinator, never()).tetherOffloadRuleAdd(
                 mIpServer, makeForwardingRule(IPSEC_IFINDEX, neigh, mac));
     }
+
+    // TODO: move to BpfCoordinatorTest once IpNeighborMonitor is migrated to BpfCoordinator.
+    @Test
+    public void addRemoveTetherClient() throws Exception {
+        initTetheredStateMachine(TETHERING_WIFI, UPSTREAM_IFACE, false /* usingLegacyDhcp */,
+                DEFAULT_USING_BPF_OFFLOAD);
+
+        final int myIfindex = TEST_IFACE_PARAMS.index;
+        final int notMyIfindex = myIfindex - 1;
+
+        final InetAddress neighA = InetAddresses.parseNumericAddress("192.168.80.1");
+        final InetAddress neighB = InetAddresses.parseNumericAddress("192.168.80.2");
+        final InetAddress neighLL = InetAddresses.parseNumericAddress("169.254.0.1");
+        final InetAddress neighMC = InetAddresses.parseNumericAddress("224.0.0.1");
+        final MacAddress macNull = MacAddress.fromString("00:00:00:00:00:00");
+        final MacAddress macA = MacAddress.fromString("00:00:00:00:00:0a");
+        final MacAddress macB = MacAddress.fromString("11:22:33:00:00:0b");
+
+        // Events on other interfaces are ignored.
+        recvNewNeigh(notMyIfindex, neighA, NUD_REACHABLE, macA);
+        verifyNoMoreInteractions(mBpfCoordinator);
+
+        // Events on this interface are received and sent to BpfCoordinator.
+        recvNewNeigh(myIfindex, neighA, NUD_REACHABLE, macA);
+        verify(mBpfCoordinator).tetherOffloadClientAdd(mIpServer, new ClientInfo(myIfindex,
+                TEST_IFACE_PARAMS.macAddr, (Inet4Address) neighA, macA));
+        clearInvocations(mBpfCoordinator);
+
+        recvNewNeigh(myIfindex, neighB, NUD_REACHABLE, macB);
+        verify(mBpfCoordinator).tetherOffloadClientAdd(mIpServer, new ClientInfo(myIfindex,
+                TEST_IFACE_PARAMS.macAddr, (Inet4Address) neighB, macB));
+        clearInvocations(mBpfCoordinator);
+
+        // Link-local and multicast neighbors are ignored.
+        recvNewNeigh(myIfindex, neighLL, NUD_REACHABLE, macA);
+        verifyNoMoreInteractions(mBpfCoordinator);
+        recvNewNeigh(myIfindex, neighMC, NUD_REACHABLE, macA);
+        verifyNoMoreInteractions(mBpfCoordinator);
+        clearInvocations(mBpfCoordinator);
+
+        // A neighbor that is no longer valid causes the client to be removed.
+        // NUD_FAILED events do not have a MAC address.
+        recvNewNeigh(myIfindex, neighA, NUD_FAILED, null);
+        verify(mBpfCoordinator).tetherOffloadClientRemove(mIpServer,  new ClientInfo(myIfindex,
+                TEST_IFACE_PARAMS.macAddr, (Inet4Address) neighA, macNull));
+        clearInvocations(mBpfCoordinator);
+
+        // A neighbor that is deleted causes the client to be removed.
+        recvDelNeigh(myIfindex, neighB, NUD_STALE, macB);
+        verify(mBpfCoordinator).tetherOffloadClientRemove(mIpServer, new ClientInfo(myIfindex,
+                TEST_IFACE_PARAMS.macAddr, (Inet4Address) neighB, macNull));
+    }
 }
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/BpfCoordinatorTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/BpfCoordinatorTest.java
index bbca565..0bd6380 100644
--- a/Tethering/tests/unit/src/com/android/networkstack/tethering/BpfCoordinatorTest.java
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/BpfCoordinatorTest.java
@@ -94,11 +94,13 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.internal.util.IndentingPrintWriter;
 import com.android.net.module.util.CollectionUtils;
 import com.android.net.module.util.IBpfMap;
 import com.android.net.module.util.InterfaceParams;
 import com.android.net.module.util.NetworkStackConstants;
 import com.android.net.module.util.SharedLog;
+import com.android.net.module.util.Struct.S32;
 import com.android.net.module.util.bpf.Tether4Key;
 import com.android.net.module.util.bpf.Tether4Value;
 import com.android.net.module.util.bpf.TetherStatsKey;
@@ -128,6 +130,7 @@
 import org.mockito.MockitoAnnotations;
 import org.mockito.MockitoSession;
 
+import java.io.StringWriter;
 import java.net.Inet4Address;
 import java.net.Inet6Address;
 import java.net.InetAddress;
@@ -362,9 +365,6 @@
     @Mock private IpServer mIpServer2;
     @Mock private TetheringConfiguration mTetherConfig;
     @Mock private ConntrackMonitor mConntrackMonitor;
-    @Mock private IBpfMap<TetherDownstream6Key, Tether6Value> mBpfDownstream6Map;
-    @Mock private IBpfMap<TetherUpstream6Key, Tether6Value> mBpfUpstream6Map;
-    @Mock private IBpfMap<TetherDevKey, TetherDevValue> mBpfDevMap;
 
     // Late init since methods must be called by the thread that created this object.
     private TestableNetworkStatsProviderCbBinder mTetherStatsProviderCb;
@@ -383,10 +383,18 @@
             spy(new TestBpfMap<>(Tether4Key.class, Tether4Value.class));
     private final IBpfMap<Tether4Key, Tether4Value> mBpfUpstream4Map =
             spy(new TestBpfMap<>(Tether4Key.class, Tether4Value.class));
+    private final IBpfMap<TetherDownstream6Key, Tether6Value> mBpfDownstream6Map =
+            spy(new TestBpfMap<>(TetherDownstream6Key.class, Tether6Value.class));
+    private final IBpfMap<TetherUpstream6Key, Tether6Value> mBpfUpstream6Map =
+            spy(new TestBpfMap<>(TetherUpstream6Key.class, Tether6Value.class));
     private final IBpfMap<TetherStatsKey, TetherStatsValue> mBpfStatsMap =
             spy(new TestBpfMap<>(TetherStatsKey.class, TetherStatsValue.class));
     private final IBpfMap<TetherLimitKey, TetherLimitValue> mBpfLimitMap =
             spy(new TestBpfMap<>(TetherLimitKey.class, TetherLimitValue.class));
+    private final IBpfMap<TetherDevKey, TetherDevValue> mBpfDevMap =
+            spy(new TestBpfMap<>(TetherDevKey.class, TetherDevValue.class));
+    private final IBpfMap<S32, S32> mBpfErrorMap =
+            spy(new TestBpfMap<>(S32.class, S32.class));
     private BpfCoordinator.Dependencies mDeps =
             spy(new BpfCoordinator.Dependencies() {
                     @NonNull
@@ -457,6 +465,11 @@
                     public IBpfMap<TetherDevKey, TetherDevValue> getBpfDevMap() {
                         return mBpfDevMap;
                     }
+
+                    @Nullable
+                    public IBpfMap<S32, S32> getBpfErrorMap() {
+                        return mBpfErrorMap;
+                    }
             });
 
     @Before public void setUp() {
@@ -2099,4 +2112,88 @@
         assertEquals("upstreamIfindex: 1001, downstreamIfindex: 1003, address: 2001:db8::1, "
                 + "srcMac: 12:34:56:78:90:ab, dstMac: 00:00:00:00:00:0a", rule.toString());
     }
+
+    private void verifyDump(@NonNull final BpfCoordinator coordinator) {
+        final StringWriter stringWriter = new StringWriter();
+        final IndentingPrintWriter ipw = new IndentingPrintWriter(stringWriter, " ");
+        coordinator.dump(ipw);
+        assertFalse(stringWriter.toString().isEmpty());
+    }
+
+    @Test
+    public void testDumpDoesNotCrash() throws Exception {
+        // This dump test only used to for improving mainline module test coverage and doesn't
+        // really do any meaningful tests.
+        // TODO: consider verifying the dump content and separate tests into testDumpXXX().
+        final BpfCoordinator coordinator = makeBpfCoordinator();
+
+        // [1] Dump mostly empty content.
+        verifyDump(coordinator);
+
+        // [2] Dump mostly non-empty content.
+        // Test the following dump function and fill the corresponding content to execute
+        // code as more as possible for test coverage.
+        // - dumpBpfForwardingRulesIpv4
+        //   * mBpfDownstream4Map
+        //   * mBpfUpstream4Map
+        // - dumpBpfForwardingRulesIpv6
+        //   * mBpfDownstream6Map
+        //   * mBpfUpstream6Map
+        // - dumpStats
+        //   * mBpfStatsMap
+        // - dumpDevmap
+        //   * mBpfDevMap
+        // - dumpCounters
+        //   * mBpfErrorMap
+        // - dumpIpv6ForwardingRulesByDownstream
+        //   * mIpv6ForwardingRules
+
+        // dumpBpfForwardingRulesIpv4
+        mBpfDownstream4Map.insertEntry(
+                new TestDownstream4Key.Builder().build(),
+                new TestDownstream4Value.Builder().build());
+        mBpfUpstream4Map.insertEntry(
+                new TestUpstream4Key.Builder().build(),
+                new TestUpstream4Value.Builder().build());
+
+        // dumpBpfForwardingRulesIpv6
+        final Ipv6ForwardingRule rule = buildTestForwardingRule(UPSTREAM_IFINDEX, NEIGH_A, MAC_A);
+        mBpfDownstream6Map.insertEntry(rule.makeTetherDownstream6Key(), rule.makeTether6Value());
+
+        final TetherUpstream6Key upstream6Key = new TetherUpstream6Key(DOWNSTREAM_IFINDEX,
+                DOWNSTREAM_MAC);
+        final Tether6Value upstream6Value = new Tether6Value(UPSTREAM_IFINDEX,
+                MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS,
+                ETH_P_IPV6, NetworkStackConstants.ETHER_MTU);
+        mBpfUpstream6Map.insertEntry(upstream6Key, upstream6Value);
+
+        // dumpStats
+        mBpfStatsMap.insertEntry(
+                new TetherStatsKey(UPSTREAM_IFINDEX),
+                new TetherStatsValue(
+                        0L /* rxPackets */, 0L /* rxBytes */, 0L /* rxErrors */,
+                        0L /* txPackets */, 0L /* txBytes */, 0L /* txErrors */));
+
+        // dumpDevmap
+        coordinator.addUpstreamNameToLookupTable(UPSTREAM_IFINDEX, UPSTREAM_IFACE);
+        mBpfDevMap.insertEntry(
+                new TetherDevKey(UPSTREAM_IFINDEX),
+                new TetherDevValue(UPSTREAM_IFINDEX));
+
+        // dumpCounters
+        // The error code is defined in packages/modules/Connectivity/bpf_progs/bpf_tethering.h.
+        mBpfErrorMap.insertEntry(
+                new S32(0 /* INVALID_IPV4_VERSION */),
+                new S32(1000 /* count */));
+
+        // dumpIpv6ForwardingRulesByDownstream
+        final HashMap<IpServer, LinkedHashMap<Inet6Address, Ipv6ForwardingRule>>
+                ipv6ForwardingRules = coordinator.getForwardingRulesForTesting();
+        final LinkedHashMap<Inet6Address, Ipv6ForwardingRule> addressRuleMap =
+                new LinkedHashMap<>();
+        addressRuleMap.put(rule.address, rule);
+        ipv6ForwardingRules.put(mIpServer, addressRuleMap);
+
+        verifyDump(coordinator);
+    }
 }
diff --git a/bpf_progs/bpf_net_helpers.h b/bpf_progs/bpf_net_helpers.h
index e382713..c39269e 100644
--- a/bpf_progs/bpf_net_helpers.h
+++ b/bpf_progs/bpf_net_helpers.h
@@ -28,9 +28,12 @@
 
 static int (*bpf_skb_pull_data)(struct __sk_buff* skb, __u32 len) = (void*)BPF_FUNC_skb_pull_data;
 
-static int (*bpf_skb_load_bytes)(struct __sk_buff* skb, int off, void* to,
+static int (*bpf_skb_load_bytes)(const struct __sk_buff* skb, int off, void* to,
                                  int len) = (void*)BPF_FUNC_skb_load_bytes;
 
+static int (*bpf_skb_load_bytes_relative)(const struct __sk_buff* skb, int off, void* to, int len,
+                                          int start_hdr) = (void*)BPF_FUNC_skb_load_bytes_relative;
+
 static int (*bpf_skb_store_bytes)(struct __sk_buff* skb, __u32 offset, const void* from, __u32 len,
                                   __u64 flags) = (void*)BPF_FUNC_skb_store_bytes;
 
diff --git a/bpf_progs/netd.c b/bpf_progs/netd.c
index 10559dd..f9484fc 100644
--- a/bpf_progs/netd.c
+++ b/bpf_progs/netd.c
@@ -47,9 +47,16 @@
 
 #define IP_PROTO_OFF offsetof(struct iphdr, protocol)
 #define IPV6_PROTO_OFF offsetof(struct ipv6hdr, nexthdr)
+
+// offsetof(struct iphdr, ihl) -- but that's a bitfield
 #define IPPROTO_IHL_OFF 0
-#define TCP_FLAG_OFF 13
-#define RST_OFFSET 2
+
+// This is offsetof(struct tcphdr, "32 bit tcp flag field")
+// The tcp flags are after be16 source, dest & be32 seq, ack_seq, hence 12 bytes in.
+//
+// Note that TCP_FLAG_{ACK,PSH,RST,SYN,FIN} are htonl(0x00{10,08,04,02,01}0000)
+// see include/uapi/linux/tcp.h
+#define TCP_FLAG32_OFF 12
 
 // For maps netd does not need to access
 #define DEFINE_BPF_MAP_NO_NETD(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries) \
@@ -97,9 +104,15 @@
 // programs that need to be usable by netd, but not by netutils_wrappers
 // (this is because these are currently attached by the mainline provided libnetd_updatable .so
 // which is loaded into netd and thus runs as netd uid/gid/selinux context)
-#define DEFINE_NETD_BPF_PROG(SECTION_NAME, prog_uid, prog_gid, the_prog) \
+#define DEFINE_NETD_BPF_PROG_KVER_RANGE(SECTION_NAME, prog_uid, prog_gid, the_prog, minKV, maxKV) \
     DEFINE_BPF_PROG_EXT(SECTION_NAME, prog_uid, prog_gid, the_prog, \
-                        KVER_NONE, KVER_INF, false, "fs_bpf_netd_readonly", "")
+                        minKV, maxKV, false, "fs_bpf_netd_readonly", "")
+
+#define DEFINE_NETD_BPF_PROG_KVER(SECTION_NAME, prog_uid, prog_gid, the_prog, min_kv) \
+    DEFINE_NETD_BPF_PROG_KVER_RANGE(SECTION_NAME, prog_uid, prog_gid, the_prog, min_kv, KVER_INF)
+
+#define DEFINE_NETD_BPF_PROG(SECTION_NAME, prog_uid, prog_gid, the_prog) \
+    DEFINE_NETD_BPF_PROG_KVER(SECTION_NAME, prog_uid, prog_gid, the_prog, KVER_NONE)
 
 // programs that only need to be usable by the system server
 #define DEFINE_SYS_BPF_PROG(SECTION_NAME, prog_uid, prog_gid, the_prog) \
@@ -176,46 +189,49 @@
 DEFINE_UPDATE_STATS(stats_map_A, StatsKey)
 DEFINE_UPDATE_STATS(stats_map_B, StatsKey)
 
-static inline bool skip_owner_match(struct __sk_buff* skb) {
-    int offset = -1;
-    int ret = 0;
+// both of these return 0 on success or -EFAULT on failure (and zero out the buffer)
+static __always_inline inline int bpf_skb_load_bytes_net(const struct __sk_buff* skb, int off,
+                                                         void* to, int len, bool is_4_19) {
+    return is_4_19
+        ? bpf_skb_load_bytes_relative(skb, off, to, len, BPF_HDR_START_NET)
+        : bpf_skb_load_bytes(skb, off, to, len);
+}
+
+static __always_inline inline bool skip_owner_match(struct __sk_buff* skb, bool is_4_19) {
     if (skb->protocol == htons(ETH_P_IP)) {
-        offset = IP_PROTO_OFF;
-        uint8_t proto, ihl;
-        uint8_t flag;
-        ret = bpf_skb_load_bytes(skb, offset, &proto, 1);
-        if (!ret) {
-            if (proto == IPPROTO_ESP) {
-                return true;
-            } else if (proto == IPPROTO_TCP) {
-                ret = bpf_skb_load_bytes(skb, IPPROTO_IHL_OFF, &ihl, 1);
-                ihl = ihl & 0x0F;
-                ret = bpf_skb_load_bytes(skb, ihl * 4 + TCP_FLAG_OFF, &flag, 1);
-                if (ret == 0 && (flag >> RST_OFFSET & 1)) {
-                    return true;
-                }
-            }
-        }
-    } else if (skb->protocol == htons(ETH_P_IPV6)) {
-        offset = IPV6_PROTO_OFF;
         uint8_t proto;
-        ret = bpf_skb_load_bytes(skb, offset, &proto, 1);
-        if (!ret) {
-            if (proto == IPPROTO_ESP) {
-                return true;
-            } else if (proto == IPPROTO_TCP) {
-                uint8_t flag;
-                ret = bpf_skb_load_bytes(skb, sizeof(struct ipv6hdr) + TCP_FLAG_OFF, &flag, 1);
-                if (ret == 0 && (flag >> RST_OFFSET & 1)) {
-                    return true;
-                }
-            }
-        }
+        // no need to check for success, proto will be zeroed if bpf_skb_load_bytes_net() fails
+        (void)bpf_skb_load_bytes_net(skb, IP_PROTO_OFF, &proto, sizeof(proto), is_4_19);
+        if (proto == IPPROTO_ESP) return true;
+        if (proto != IPPROTO_TCP) return false;  // handles read failure above
+        uint8_t ihl;
+        // we don't check for success, as this cannot fail, as it is earlier in the packet than
+        // proto, the reading of which must have succeeded, additionally the next read
+        // (a little bit deeper in the packet in spite of ihl being zeroed) of the tcp flags
+        // field will also fail, and that failure we already handle correctly
+        // (we also don't check that ihl in [0x45,0x4F] nor that ipv4 header checksum is correct)
+        (void)bpf_skb_load_bytes_net(skb, IPPROTO_IHL_OFF, &ihl, sizeof(ihl), is_4_19);
+        uint32_t flag;
+        // if the read below fails, we'll just assume no TCP flags are set, which is fine.
+        (void)bpf_skb_load_bytes_net(skb, (ihl & 0xF) * 4 + TCP_FLAG32_OFF,
+                                     &flag, sizeof(flag), is_4_19);
+        return flag & TCP_FLAG_RST;  // false on read failure
+    } else if (skb->protocol == htons(ETH_P_IPV6)) {
+        uint8_t proto;
+        // no need to check for success, proto will be zeroed if bpf_skb_load_bytes_net() fails
+        (void)bpf_skb_load_bytes_net(skb, IPV6_PROTO_OFF, &proto, sizeof(proto), is_4_19);
+        if (proto == IPPROTO_ESP) return true;
+        if (proto != IPPROTO_TCP) return false;  // handles read failure above
+        uint32_t flag;
+        // if the read below fails, we'll just assume no TCP flags are set, which is fine.
+        (void)bpf_skb_load_bytes_net(skb, sizeof(struct ipv6hdr) + TCP_FLAG32_OFF,
+                                     &flag, sizeof(flag), is_4_19);
+        return flag & TCP_FLAG_RST;  // false on read failure
     }
     return false;
 }
 
-static __always_inline BpfConfig getConfig(uint32_t configKey) {
+static __always_inline inline BpfConfig getConfig(uint32_t configKey) {
     uint32_t mapSettingKey = configKey;
     BpfConfig* config = bpf_configuration_map_lookup_elem(&mapSettingKey);
     if (!config) {
@@ -230,8 +246,9 @@
 // DROP_IF_UNSET is set of rules that should DROP if globally enabled, and per-uid bit is NOT set
 #define DROP_IF_UNSET (DOZABLE_MATCH | POWERSAVE_MATCH | RESTRICTED_MATCH | LOW_POWER_STANDBY_MATCH)
 
-static inline int bpf_owner_match(struct __sk_buff* skb, uint32_t uid, int direction) {
-    if (skip_owner_match(skb)) return BPF_PASS;
+static __always_inline inline int bpf_owner_match(struct __sk_buff* skb, uint32_t uid,
+                                                  int direction, bool is_4_19) {
+    if (skip_owner_match(skb, is_4_19)) return BPF_PASS;
 
     if (is_system_uid(uid)) return BPF_PASS;
 
@@ -273,7 +290,8 @@
     }
 }
 
-static __always_inline inline int bpf_traffic_account(struct __sk_buff* skb, int direction) {
+static __always_inline inline int bpf_traffic_account(struct __sk_buff* skb, int direction,
+                                                      bool is_4_19) {
     uint32_t sock_uid = bpf_get_socket_uid(skb);
     uint64_t cookie = bpf_get_socket_cookie(skb);
     UidTagValue* utag = bpf_cookie_tag_map_lookup_elem(&cookie);
@@ -293,7 +311,7 @@
         return BPF_PASS;
     }
 
-    int match = bpf_owner_match(skb, sock_uid, direction);
+    int match = bpf_owner_match(skb, sock_uid, direction, is_4_19);
     if ((direction == BPF_EGRESS) && (match == BPF_DROP)) {
         // If an outbound packet is going to be dropped, we do not count that
         // traffic.
@@ -338,14 +356,28 @@
     return match;
 }
 
-DEFINE_NETD_BPF_PROG("cgroupskb/ingress/stats", AID_ROOT, AID_SYSTEM, bpf_cgroup_ingress)
+DEFINE_NETD_BPF_PROG_KVER_RANGE("cgroupskb/ingress/stats$4_19", AID_ROOT, AID_SYSTEM,
+                                bpf_cgroup_ingress_4_19, KVER(4, 19, 0), KVER_INF)
 (struct __sk_buff* skb) {
-    return bpf_traffic_account(skb, BPF_INGRESS);
+    return bpf_traffic_account(skb, BPF_INGRESS, /* is_4_19 */ true);
 }
 
-DEFINE_NETD_BPF_PROG("cgroupskb/egress/stats", AID_ROOT, AID_SYSTEM, bpf_cgroup_egress)
+DEFINE_NETD_BPF_PROG_KVER_RANGE("cgroupskb/ingress/stats$4_14", AID_ROOT, AID_SYSTEM,
+                                bpf_cgroup_ingress_4_14, KVER_NONE, KVER(4, 19, 0))
 (struct __sk_buff* skb) {
-    return bpf_traffic_account(skb, BPF_EGRESS);
+    return bpf_traffic_account(skb, BPF_INGRESS, /* is_4_19 */ false);
+}
+
+DEFINE_NETD_BPF_PROG_KVER_RANGE("cgroupskb/egress/stats$4_19", AID_ROOT, AID_SYSTEM,
+                                bpf_cgroup_egress_4_19, KVER(4, 19, 0), KVER_INF)
+(struct __sk_buff* skb) {
+    return bpf_traffic_account(skb, BPF_EGRESS, /* is_4_19 */ true);
+}
+
+DEFINE_NETD_BPF_PROG_KVER_RANGE("cgroupskb/egress/stats$4_14", AID_ROOT, AID_SYSTEM,
+                                bpf_cgroup_egress_4_14, KVER_NONE, KVER(4, 19, 0))
+(struct __sk_buff* skb) {
+    return bpf_traffic_account(skb, BPF_EGRESS, /* is_4_19 */ false);
 }
 
 // WARNING: Android T's non-updatable netd depends on the name of this program.
@@ -419,7 +451,8 @@
     return BPF_NOMATCH;
 }
 
-DEFINE_NETD_BPF_PROG("cgroupsock/inet/create", AID_ROOT, AID_ROOT, inet_socket_create)
+DEFINE_NETD_BPF_PROG_KVER("cgroupsock/inet/create", AID_ROOT, AID_ROOT, inet_socket_create,
+                          KVER(4, 14, 0))
 (struct bpf_sock* sk) {
     uint64_t gid_uid = bpf_get_current_uid_gid();
     /*
diff --git a/framework/src/android/net/ConnectivityManager.java b/framework/src/android/net/ConnectivityManager.java
index 547b4ba..b5c3c64 100644
--- a/framework/src/android/net/ConnectivityManager.java
+++ b/framework/src/android/net/ConnectivityManager.java
@@ -4080,7 +4080,7 @@
         }
     }
 
-    private class CallbackHandler extends Handler {
+    private static class CallbackHandler extends Handler {
         private static final String TAG = "ConnectivityManager.CallbackHandler";
         private static final boolean DBG = false;
 
@@ -4095,7 +4095,10 @@
         @Override
         public void handleMessage(Message message) {
             if (message.what == EXPIRE_LEGACY_REQUEST) {
-                expireRequest((NetworkCapabilities) message.obj, message.arg1);
+                // the sInstance can't be null because to send this message a ConnectivityManager
+                // instance must have been created prior to creating the thread on which this
+                // Handler is running.
+                sInstance.expireRequest((NetworkCapabilities) message.obj, message.arg1);
                 return;
             }
 
diff --git a/nearby/halfsheet/Android.bp b/nearby/halfsheet/Android.bp
index 486a3ff..c84caa6 100644
--- a/nearby/halfsheet/Android.bp
+++ b/nearby/halfsheet/Android.bp
@@ -23,7 +23,6 @@
     sdk_version: "module_current",
     // This is included in tethering apex, which uses min SDK 30
     min_sdk_version: "30",
-    target_sdk_version: "current",
     updatable: true,
     certificate: ":com.android.nearby.halfsheetcertificate",
     libs: [
diff --git a/netd/BpfHandler.cpp b/netd/BpfHandler.cpp
index 3f7ed2a..7950ff7 100644
--- a/netd/BpfHandler.cpp
+++ b/netd/BpfHandler.cpp
@@ -87,7 +87,16 @@
     RETURN_IF_NOT_OK(checkProgramAccessible(XT_BPF_INGRESS_PROG_PATH));
     RETURN_IF_NOT_OK(attachProgramToCgroup(BPF_EGRESS_PROG_PATH, cg_fd, BPF_CGROUP_INET_EGRESS));
     RETURN_IF_NOT_OK(attachProgramToCgroup(BPF_INGRESS_PROG_PATH, cg_fd, BPF_CGROUP_INET_INGRESS));
-    RETURN_IF_NOT_OK(attachProgramToCgroup(CGROUP_SOCKET_PROG_PATH, cg_fd, BPF_CGROUP_INET_SOCK_CREATE));
+
+    // For the devices that support cgroup socket filter, the socket filter
+    // should be loaded successfully by bpfloader. So we attach the filter to
+    // cgroup if the program is pinned properly.
+    // TODO: delete the if statement once all devices should support cgroup
+    // socket filter (ie. the minimum kernel version required is 4.14).
+    if (!access(CGROUP_SOCKET_PROG_PATH, F_OK)) {
+        RETURN_IF_NOT_OK(
+                attachProgramToCgroup(CGROUP_SOCKET_PROG_PATH, cg_fd, BPF_CGROUP_INET_SOCK_CREATE));
+    }
     return netdutils::status::ok;
 }
 
diff --git a/service-t/src/com/android/server/IpSecService.java b/service-t/src/com/android/server/IpSecService.java
index 16b9f1e..6cee08a 100644
--- a/service-t/src/com/android/server/IpSecService.java
+++ b/service-t/src/com/android/server/IpSecService.java
@@ -859,6 +859,13 @@
                             mIkey,
                             0xffffffff,
                             mIfId);
+                    mNetd.ipSecDeleteSecurityPolicy(
+                            mUid,
+                            selAddrFamily,
+                            IpSecManager.DIRECTION_FWD,
+                            mIkey,
+                            0xffffffff,
+                            mIfId);
                 }
             } catch (ServiceSpecificException | RemoteException e) {
                 Log.e(
diff --git a/service/ServiceConnectivityResources/Android.bp b/service/ServiceConnectivityResources/Android.bp
index 02b2875..2260596 100644
--- a/service/ServiceConnectivityResources/Android.bp
+++ b/service/ServiceConnectivityResources/Android.bp
@@ -21,9 +21,8 @@
 
 android_app {
     name: "ServiceConnectivityResources",
-    sdk_version: "module_30",
+    sdk_version: "module_current",
     min_sdk_version: "30",
-    target_sdk_version: "33",
     resource_dirs: [
         "res",
     ],
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java
index 195f046..9b1fa45 100755
--- a/service/src/com/android/server/ConnectivityService.java
+++ b/service/src/com/android/server/ConnectivityService.java
@@ -3092,7 +3092,7 @@
      * Reads the network specific MTU size from resources.
      * and set it on it's iface.
      */
-    private void updateMtu(LinkProperties newLp, LinkProperties oldLp) {
+    private void updateMtu(@NonNull LinkProperties newLp, @Nullable LinkProperties oldLp) {
         final String iface = newLp.getInterfaceName();
         final int mtu = newLp.getMtu();
         if (oldLp == null && mtu == 0) {
@@ -3125,7 +3125,7 @@
     @VisibleForTesting
     protected static final String DEFAULT_TCP_BUFFER_SIZES = "4096,87380,110208,4096,16384,110208";
 
-    private void updateTcpBufferSizes(String tcpBufferSizes) {
+    private void updateTcpBufferSizes(@Nullable String tcpBufferSizes) {
         String[] values = null;
         if (tcpBufferSizes != null) {
             values = tcpBufferSizes.split(",");
@@ -5762,7 +5762,7 @@
         return mProxyTracker.getGlobalProxy();
     }
 
-    private void handleApplyDefaultProxy(ProxyInfo proxy) {
+    private void handleApplyDefaultProxy(@Nullable ProxyInfo proxy) {
         if (proxy != null && TextUtils.isEmpty(proxy.getHost())
                 && Uri.EMPTY.equals(proxy.getPacFileUrl())) {
             proxy = null;
@@ -5774,8 +5774,8 @@
     // when any network changes proxy.
     // TODO: Remove usage of broadcast extras as they are deprecated and not applicable in a
     // multi-network world where an app might be bound to a non-default network.
-    private void updateProxy(LinkProperties newLp, LinkProperties oldLp) {
-        ProxyInfo newProxyInfo = newLp == null ? null : newLp.getHttpProxy();
+    private void updateProxy(@NonNull LinkProperties newLp, @Nullable LinkProperties oldLp) {
+        ProxyInfo newProxyInfo = newLp.getHttpProxy();
         ProxyInfo oldProxyInfo = oldLp == null ? null : oldLp.getHttpProxy();
 
         if (!ProxyTracker.proxyInfoEqual(newProxyInfo, oldProxyInfo)) {
@@ -7500,7 +7500,7 @@
     }
 
     private void updateLinkProperties(NetworkAgentInfo networkAgent, @NonNull LinkProperties newLp,
-            @NonNull LinkProperties oldLp) {
+            @Nullable LinkProperties oldLp) {
         int netId = networkAgent.network.getNetId();
 
         // The NetworkAgent does not know whether clatd is running on its network or not, or whether
@@ -7552,7 +7552,13 @@
             }
             // Start or stop DNS64 detection and 464xlat according to network state.
             networkAgent.clatd.update();
-            notifyIfacesChangedForNetworkStats();
+            // Notify NSS when relevant events happened. Currently, NSS only cares about
+            // interface changed to update clat interfaces accounting.
+            final boolean interfacesChanged = oldLp == null
+                    || !Objects.equals(newLp.getAllInterfaceNames(), oldLp.getAllInterfaceNames());
+            if (interfacesChanged) {
+                notifyIfacesChangedForNetworkStats();
+            }
             networkAgent.networkMonitor().notifyLinkPropertiesChanged(
                     new LinkProperties(newLp, true /* parcelSensitiveFields */));
             notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
@@ -7639,12 +7645,11 @@
 
     }
 
-    private void updateInterfaces(final @Nullable LinkProperties newLp,
+    private void updateInterfaces(final @NonNull LinkProperties newLp,
             final @Nullable LinkProperties oldLp, final int netId,
             final @NonNull NetworkCapabilities caps) {
         final CompareResult<String> interfaceDiff = new CompareResult<>(
-                oldLp != null ? oldLp.getAllInterfaceNames() : null,
-                newLp != null ? newLp.getAllInterfaceNames() : null);
+                oldLp != null ? oldLp.getAllInterfaceNames() : null, newLp.getAllInterfaceNames());
         if (!interfaceDiff.added.isEmpty()) {
             for (final String iface : interfaceDiff.added) {
                 try {
@@ -7705,12 +7710,13 @@
      * Have netd update routes from oldLp to newLp.
      * @return true if routes changed between oldLp and newLp
      */
-    private boolean updateRoutes(LinkProperties newLp, LinkProperties oldLp, int netId) {
+    private boolean updateRoutes(@NonNull LinkProperties newLp, @Nullable LinkProperties oldLp,
+            int netId) {
         // compare the route diff to determine which routes have been updated
         final CompareOrUpdateResult<RouteInfo.RouteKey, RouteInfo> routeDiff =
                 new CompareOrUpdateResult<>(
                         oldLp != null ? oldLp.getAllRoutes() : null,
-                        newLp != null ? newLp.getAllRoutes() : null,
+                        newLp.getAllRoutes(),
                         (r) -> r.getRouteKey());
 
         // add routes before removing old in case it helps with continuous connectivity
@@ -7760,7 +7766,8 @@
                 || !routeDiff.updated.isEmpty();
     }
 
-    private void updateDnses(LinkProperties newLp, LinkProperties oldLp, int netId) {
+    private void updateDnses(@NonNull LinkProperties newLp, @Nullable LinkProperties oldLp,
+            int netId) {
         if (oldLp != null && newLp.isIdenticalDnses(oldLp)) {
             return;  // no updating necessary
         }
@@ -7777,8 +7784,8 @@
         }
     }
 
-    private void updateVpnFiltering(LinkProperties newLp, LinkProperties oldLp,
-            NetworkAgentInfo nai) {
+    private void updateVpnFiltering(@NonNull LinkProperties newLp, @Nullable LinkProperties oldLp,
+            @NonNull NetworkAgentInfo nai) {
         final String oldIface = getVpnIsolationInterface(nai, nai.networkCapabilities, oldLp);
         final String newIface = getVpnIsolationInterface(nai, nai.networkCapabilities, newLp);
         final boolean wasFiltering = requiresVpnAllowRule(nai, oldLp, oldIface);
@@ -8315,7 +8322,8 @@
         }
     }
 
-    public void handleUpdateLinkProperties(NetworkAgentInfo nai, LinkProperties newLp) {
+    public void handleUpdateLinkProperties(@NonNull NetworkAgentInfo nai,
+            @NonNull LinkProperties newLp) {
         ensureRunningOnConnectivityServiceThread();
 
         if (!mNetworkAgentInfos.contains(nai)) {
diff --git a/service/src/com/android/server/connectivity/Nat464Xlat.java b/service/src/com/android/server/connectivity/Nat464Xlat.java
index 4e19781..2ac2ad3 100644
--- a/service/src/com/android/server/connectivity/Nat464Xlat.java
+++ b/service/src/com/android/server/connectivity/Nat464Xlat.java
@@ -22,6 +22,7 @@
 import static com.android.net.module.util.CollectionUtils.contains;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.net.ConnectivityManager;
 import android.net.IDnsResolver;
 import android.net.INetd;
@@ -420,7 +421,7 @@
      * This is necessary because the LinkProperties in mNetwork come from the transport layer, which
      * has no idea that 464xlat is running on top of it.
      */
-    public void fixupLinkProperties(@NonNull LinkProperties oldLp, @NonNull LinkProperties lp) {
+    public void fixupLinkProperties(@Nullable LinkProperties oldLp, @NonNull LinkProperties lp) {
         // This must be done even if clatd is not running, because otherwise shouldStartClat would
         // never return true.
         lp.setNat64Prefix(selectNat64Prefix());
@@ -433,6 +434,8 @@
         }
 
         Log.d(TAG, "clatd running, updating NAI for " + mIface);
+        // oldLp can't be null here since shouldStartClat checks null LinkProperties to start clat.
+        // Thus, the status won't pass isRunning check if the oldLp is null.
         for (LinkProperties stacked: oldLp.getStackedLinks()) {
             if (Objects.equals(mIface, stacked.getInterfaceName())) {
                 lp.addStackedLink(stacked);
diff --git a/tests/mts/bpf_existence_test.cpp b/tests/mts/bpf_existence_test.cpp
index bb07a98..aa5654a 100644
--- a/tests/mts/bpf_existence_test.cpp
+++ b/tests/mts/bpf_existence_test.cpp
@@ -105,7 +105,6 @@
     SHARED "prog_clatd_schedcls_ingress6_clat_rawip",
     NETD "prog_netd_cgroupskb_egress_stats",
     NETD "prog_netd_cgroupskb_ingress_stats",
-    NETD "prog_netd_cgroupsock_inet_create",
     NETD "prog_netd_schedact_ingress_account",
     NETD "prog_netd_skfilter_allowlist_xtbpf",
     NETD "prog_netd_skfilter_denylist_xtbpf",
@@ -113,6 +112,11 @@
     NETD "prog_netd_skfilter_ingress_xtbpf",
 };
 
+// Provided by *current* mainline module for T+ devices with 4.14+ kernels
+static const set<string> MAINLINE_FOR_T_4_14_PLUS = {
+    NETD "prog_netd_cgroupsock_inet_create",
+};
+
 // Provided by *current* mainline module for T+ devices with 5.4+ kernels
 static const set<string> MAINLINE_FOR_T_5_4_PLUS = {
     SHARED "prog_block_bind4_block_port",
@@ -151,6 +155,7 @@
     // Nothing added or removed in SCv2.
 
     DO_EXPECT(IsAtLeastT(), MAINLINE_FOR_T_PLUS);
+    DO_EXPECT(IsAtLeastT() && isAtLeastKernelVersion(4, 14, 0), MAINLINE_FOR_T_4_14_PLUS);
     DO_EXPECT(IsAtLeastT() && isAtLeastKernelVersion(5, 4, 0), MAINLINE_FOR_T_5_4_PLUS);
     DO_EXPECT(IsAtLeastT() && isAtLeastKernelVersion(5, 15, 0), MAINLINE_FOR_T_5_15_PLUS);
 }
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index 2d8cf80..65e0b10 100755
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -7236,6 +7236,15 @@
         expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
         reset(mStatsManager);
 
+        // Verify change fields other than interfaces does not trigger a notification to NSS.
+        cellLp.addLinkAddress(new LinkAddress("192.0.2.4/24"));
+        cellLp.addRoute(new RouteInfo((IpPrefix) null, InetAddress.getByName("192.0.2.4"),
+                MOBILE_IFNAME));
+        cellLp.setDnsServers(List.of(InetAddress.getAllByName("8.8.8.8")));
+        mCellNetworkAgent.sendLinkProperties(cellLp);
+        verifyNoMoreInteractions(mStatsManager);
+        reset(mStatsManager);
+
         // Default network switch should update ifaces.
         mWiFiNetworkAgent.connect(false);
         mWiFiNetworkAgent.sendLinkProperties(wifiLp);
diff --git a/tests/unit/java/com/android/server/IpSecServiceParameterizedTest.java b/tests/unit/java/com/android/server/IpSecServiceParameterizedTest.java
index 9401d47..624071a 100644
--- a/tests/unit/java/com/android/server/IpSecServiceParameterizedTest.java
+++ b/tests/unit/java/com/android/server/IpSecServiceParameterizedTest.java
@@ -748,6 +748,13 @@
         // Verify quota and RefcountedResource objects cleaned up
         assertEquals(0, userRecord.mTunnelQuotaTracker.mCurrent);
         verify(mMockNetd).ipSecRemoveTunnelInterface(eq(createTunnelResp.interfaceName));
+
+        for (int direction : new int[] {DIRECTION_OUT, DIRECTION_IN, DIRECTION_FWD}) {
+            verify(mMockNetd, times(ADDRESS_FAMILIES.length))
+                    .ipSecDeleteSecurityPolicy(
+                            anyInt(), anyInt(), eq(direction), anyInt(), anyInt(), anyInt());
+        }
+
         try {
             userRecord.mTunnelInterfaceRecords.getRefcountedResourceOrThrow(
                     createTunnelResp.resourceId);
diff --git a/tests/unit/java/com/android/server/connectivity/ClatCoordinatorTest.java b/tests/unit/java/com/android/server/connectivity/ClatCoordinatorTest.java
index 49e3514..b651c33 100644
--- a/tests/unit/java/com/android/server/connectivity/ClatCoordinatorTest.java
+++ b/tests/unit/java/com/android/server/connectivity/ClatCoordinatorTest.java
@@ -222,7 +222,7 @@
         public String generateIpv6Address(@NonNull String iface, @NonNull String v4,
                 @NonNull String prefix64, int mark) throws IOException {
             if (BASE_IFACE.equals(iface) && XLAT_LOCAL_IPV4ADDR_STRING.equals(v4)
-                    && NAT64_PREFIX_STRING.equals(prefix64)) {
+                    && NAT64_PREFIX_STRING.equals(prefix64) && MARK == mark) {
                 return XLAT_LOCAL_IPV6ADDR_STRING;
             }
             fail("unsupported args: " + iface + ", " + v4 + ", " + prefix64 + ", " + mark);
diff --git a/tests/unit/java/com/android/server/connectivity/VpnTest.java b/tests/unit/java/com/android/server/connectivity/VpnTest.java
index 39fd780..3c23d7b 100644
--- a/tests/unit/java/com/android/server/connectivity/VpnTest.java
+++ b/tests/unit/java/com/android/server/connectivity/VpnTest.java
@@ -31,6 +31,7 @@
 import static android.os.Build.VERSION_CODES.S_V2;
 import static android.os.UserHandle.PER_USER_RANGE;
 
+import static com.android.net.module.util.NetworkStackConstants.IPV6_MIN_MTU;
 import static com.android.testutils.Cleanup.testAndCleanup;
 import static com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
 import static com.android.testutils.MiscAsserts.assertThrows;
@@ -93,6 +94,7 @@
 import android.net.LinkProperties;
 import android.net.LocalSocket;
 import android.net.Network;
+import android.net.NetworkAgent;
 import android.net.NetworkAgentConfig;
 import android.net.NetworkCapabilities;
 import android.net.NetworkInfo.DetailedState;
@@ -204,6 +206,7 @@
     private static final byte[] TEST_VPN_PSK = "psk".getBytes();
 
     private static final int IP4_PREFIX_LEN = 32;
+    private static final int IP6_PREFIX_LEN = 64;
     private static final int MIN_PORT = 0;
     private static final int MAX_PORT = 65535;
 
@@ -217,15 +220,28 @@
             InetAddresses.parseNumericAddress("192.0.2.201");
     private static final InetAddress TEST_VPN_INTERNAL_IP =
             InetAddresses.parseNumericAddress("198.51.100.10");
+    private static final InetAddress TEST_VPN_INTERNAL_IP6 =
+            InetAddresses.parseNumericAddress("2001:db8::1");
     private static final InetAddress TEST_VPN_INTERNAL_DNS =
             InetAddresses.parseNumericAddress("8.8.8.8");
+    private static final InetAddress TEST_VPN_INTERNAL_DNS6 =
+            InetAddresses.parseNumericAddress("2001:4860:4860::8888");
 
     private static final IkeTrafficSelector IN_TS =
             new IkeTrafficSelector(MIN_PORT, MAX_PORT, TEST_VPN_INTERNAL_IP, TEST_VPN_INTERNAL_IP);
+    private static final IkeTrafficSelector IN_TS6 =
+            new IkeTrafficSelector(
+                    MIN_PORT, MAX_PORT, TEST_VPN_INTERNAL_IP6, TEST_VPN_INTERNAL_IP6);
     private static final IkeTrafficSelector OUT_TS =
             new IkeTrafficSelector(MIN_PORT, MAX_PORT,
                     InetAddresses.parseNumericAddress("0.0.0.0"),
                     InetAddresses.parseNumericAddress("255.255.255.255"));
+    private static final IkeTrafficSelector OUT_TS6 =
+            new IkeTrafficSelector(
+                    MIN_PORT,
+                    MAX_PORT,
+                    InetAddresses.parseNumericAddress("::"),
+                    InetAddresses.parseNumericAddress("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"));
 
     private static final Network TEST_NETWORK = new Network(Integer.MAX_VALUE);
     private static final Network TEST_NETWORK_2 = new Network(Integer.MAX_VALUE - 1);
@@ -277,6 +293,10 @@
 
         mIpSecManager = new IpSecManager(mContext, mIpSecService);
         mTestDeps = spy(new TestDeps());
+        doReturn(IPV6_MIN_MTU)
+                .when(mTestDeps)
+                .calculateVpnMtu(any(), anyInt(), anyInt(), anyBoolean());
+        doReturn(1500).when(mTestDeps).getJavaNetworkInterfaceMtu(any(), anyInt());
 
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         setMockedPackages(sPackages);
@@ -315,6 +335,8 @@
                         IpSecManager.Status.OK, TEST_TUNNEL_RESOURCE_ID, TEST_IFACE_NAME);
         when(mIpSecService.createTunnelInterface(any(), any(), any(), any(), any()))
                 .thenReturn(tunnelResp);
+        doReturn(new LinkProperties()).when(mConnectivityManager).getLinkProperties(any());
+
         // The unit test should know what kind of permission it needs and set the permission by
         // itself, so set the default value of Context#checkCallingOrSelfPermission to
         // PERMISSION_DENIED.
@@ -1693,9 +1715,12 @@
     }
 
     private ChildSessionConfiguration createChildConfig() {
-        return new ChildSessionConfiguration.Builder(Arrays.asList(IN_TS), Arrays.asList(OUT_TS))
+        return new ChildSessionConfiguration.Builder(
+                        Arrays.asList(IN_TS, IN_TS6), Arrays.asList(OUT_TS, OUT_TS6))
                 .addInternalAddress(new LinkAddress(TEST_VPN_INTERNAL_IP, IP4_PREFIX_LEN))
+                .addInternalAddress(new LinkAddress(TEST_VPN_INTERNAL_IP6, IP6_PREFIX_LEN))
                 .addInternalDnsServer(TEST_VPN_INTERNAL_DNS)
+                .addInternalDnsServer(TEST_VPN_INTERNAL_DNS6)
                 .build();
     }
 
@@ -1742,9 +1767,19 @@
 
     private PlatformVpnSnapshot verifySetupPlatformVpn(IkeSessionConfiguration ikeConfig)
             throws Exception {
+        return verifySetupPlatformVpn(ikeConfig, true);
+    }
+
+    private PlatformVpnSnapshot verifySetupPlatformVpn(
+            IkeSessionConfiguration ikeConfig, boolean mtuSupportsIpv6) throws Exception {
+        if (!mtuSupportsIpv6) {
+            doReturn(IPV6_MIN_MTU - 1).when(mTestDeps).calculateVpnMtu(any(), anyInt(), anyInt(),
+                    anyBoolean());
+        }
+
         doReturn(mMockNetworkAgent).when(mTestDeps)
                 .newNetworkAgent(
-                        any(), any(), anyString(), any(), any(), any(), any(), any());
+                        any(), any(), anyString(), any(), any(), any(), any(), any(), any());
 
         final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OPSTR_ACTIVATE_PLATFORM_VPN);
         when(mVpnProfileStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG)))
@@ -1774,24 +1809,44 @@
                 ArgumentCaptor.forClass(NetworkAgentConfig.class);
         verify(mTestDeps).newNetworkAgent(
                 any(), any(), anyString(), ncCaptor.capture(), lpCaptor.capture(),
-                any(), nacCaptor.capture(), any());
+                any(), nacCaptor.capture(), any(), any());
 
         // Check LinkProperties
         final LinkProperties lp = lpCaptor.getValue();
-        final List<RouteInfo> expectedRoutes = Arrays.asList(
-                new RouteInfo(new IpPrefix(Inet4Address.ANY, 0), null /*gateway*/,
-                        TEST_IFACE_NAME, RouteInfo.RTN_UNICAST),
-                new RouteInfo(new IpPrefix(Inet6Address.ANY, 0), null /*gateway*/,
-                        TEST_IFACE_NAME, RTN_UNREACHABLE));
-        assertEquals(expectedRoutes, lp.getRoutes());
-
-        // Check internal addresses
+        final List<RouteInfo> expectedRoutes =
+                new ArrayList<>(
+                        Arrays.asList(
+                                new RouteInfo(
+                                        new IpPrefix(Inet4Address.ANY, 0),
+                                        null /* gateway */,
+                                        TEST_IFACE_NAME,
+                                        RouteInfo.RTN_UNICAST)));
         final List<LinkAddress> expectedAddresses =
-                Arrays.asList(new LinkAddress(TEST_VPN_INTERNAL_IP, IP4_PREFIX_LEN));
-        assertEquals(expectedAddresses, lp.getLinkAddresses());
+                new ArrayList<>(
+                        Arrays.asList(new LinkAddress(TEST_VPN_INTERNAL_IP, IP4_PREFIX_LEN)));
+        final List<InetAddress> expectedDns = new ArrayList<>(Arrays.asList(TEST_VPN_INTERNAL_DNS));
 
-        // Check internal DNS
-        assertEquals(Arrays.asList(TEST_VPN_INTERNAL_DNS), lp.getDnsServers());
+        if (mtuSupportsIpv6) {
+            expectedRoutes.add(
+                    new RouteInfo(
+                            new IpPrefix(Inet6Address.ANY, 0),
+                            null /* gateway */,
+                            TEST_IFACE_NAME,
+                            RouteInfo.RTN_UNICAST));
+            expectedAddresses.add(new LinkAddress(TEST_VPN_INTERNAL_IP6, IP6_PREFIX_LEN));
+            expectedDns.add(TEST_VPN_INTERNAL_DNS6);
+        } else {
+            expectedRoutes.add(
+                    new RouteInfo(
+                            new IpPrefix(Inet6Address.ANY, 0),
+                            null /* gateway */,
+                            TEST_IFACE_NAME,
+                            RTN_UNREACHABLE));
+        }
+
+        assertEquals(expectedRoutes, lp.getRoutes());
+        assertEquals(expectedAddresses, lp.getLinkAddresses());
+        assertEquals(expectedDns, lp.getDnsServers());
 
         // Check NetworkCapabilities
         assertEquals(Arrays.asList(TEST_NETWORK), ncCaptor.getValue().getUnderlyingNetworks());
@@ -1810,10 +1865,23 @@
     }
 
     @Test
+    public void testStartPlatformVpn_mtuDoesNotSupportIpv6() throws Exception {
+        final PlatformVpnSnapshot vpnSnapShot =
+                verifySetupPlatformVpn(
+                        createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */),
+                        false /* mtuSupportsIpv6 */);
+        vpnSnapShot.vpn.mVpnRunner.exitVpnRunner();
+    }
+
+    @Test
     public void testStartPlatformVpnMobility_mobikeEnabled() throws Exception {
         final PlatformVpnSnapshot vpnSnapShot = verifySetupPlatformVpn(
                 createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */));
 
+        // Set new MTU on a different network
+        final int newMtu = IPV6_MIN_MTU + 1;
+        doReturn(newMtu).when(mTestDeps).calculateVpnMtu(any(), anyInt(), anyInt(), anyBoolean());
+
         // Mock network loss and verify a cleanup task is scheduled
         vpnSnapShot.nwCb.onLost(TEST_NETWORK);
         verify(mExecutor).schedule(any(Runnable.class), anyLong(), any());
@@ -1842,6 +1910,61 @@
                 vpnSnapShot.vpn.mNetworkCapabilities.getUnderlyingNetworks());
         verify(mMockNetworkAgent)
                 .doSetUnderlyingNetworks(Collections.singletonList(TEST_NETWORK_2));
+        verify(mMockNetworkAgent).doSendLinkProperties(argThat(lp -> lp.getMtu() == newMtu));
+        verify(mMockNetworkAgent, never()).unregister();
+
+        vpnSnapShot.vpn.mVpnRunner.exitVpnRunner();
+    }
+
+    @Test
+    public void testStartPlatformVpnMobility_mobikeEnabledMtuDoesNotSupportIpv6() throws Exception {
+        final PlatformVpnSnapshot vpnSnapShot =
+                verifySetupPlatformVpn(
+                        createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */));
+
+        // Set MTU below 1280
+        final int newMtu = IPV6_MIN_MTU - 1;
+        doReturn(newMtu).when(mTestDeps).calculateVpnMtu(any(), anyInt(), anyInt(), anyBoolean());
+
+        // Mock new network available & MOBIKE procedures
+        vpnSnapShot.nwCb.onAvailable(TEST_NETWORK_2);
+        vpnSnapShot.ikeCb.onIkeSessionConnectionInfoChanged(createIkeConnectInfo_2());
+        vpnSnapShot.childCb.onIpSecTransformsMigrated(
+                createIpSecTransform(), createIpSecTransform());
+
+        // Verify removal of IPv6 addresses and routes triggers a network agent restart
+        final ArgumentCaptor<LinkProperties> lpCaptor =
+                ArgumentCaptor.forClass(LinkProperties.class);
+        verify(mTestDeps, times(2))
+                .newNetworkAgent(any(), any(), anyString(), any(), lpCaptor.capture(), any(), any(),
+                        any(), any());
+        verify(mMockNetworkAgent).unregister();
+        // mMockNetworkAgent is an old NetworkAgent, so it won't update LinkProperties after
+        // unregistering.
+        verify(mMockNetworkAgent, never()).doSendLinkProperties(any());
+
+        final LinkProperties lp = lpCaptor.getValue();
+
+        for (LinkAddress addr : lp.getLinkAddresses()) {
+            if (addr.isIpv6()) {
+                fail("IPv6 address found on VPN with MTU < IPv6 minimum MTU");
+            }
+        }
+
+        for (InetAddress dnsAddr : lp.getDnsServers()) {
+            if (dnsAddr instanceof Inet6Address) {
+                fail("IPv6 DNS server found on VPN with MTU < IPv6 minimum MTU");
+            }
+        }
+
+        for (RouteInfo routeInfo : lp.getRoutes()) {
+            if (routeInfo.getDestinationLinkAddress().isIpv6()
+                    && !routeInfo.isIPv6UnreachableDefault()) {
+                fail("IPv6 route found on VPN with MTU < IPv6 minimum MTU");
+            }
+        }
+
+        assertEquals(newMtu, lp.getMtu());
 
         vpnSnapShot.vpn.mVpnRunner.exitVpnRunner();
     }
@@ -1968,7 +2091,7 @@
     }
 
     @Test
-    public void testDataStallInIkev2VpnMobikeEnabled() throws Exception {
+    public void testDataStallInIkev2VpnRecoveredByMobike() throws Exception {
         final PlatformVpnSnapshot vpnSnapShot = verifySetupPlatformVpn(
                 createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */));
 
@@ -1980,6 +2103,64 @@
 
         // Verify MOBIKE is triggered
         verifyMobikeTriggered(vpnSnapShot.vpn.mNetworkCapabilities.getUnderlyingNetworks());
+
+        // Expect to skip other data stall event if MOBIKE was started.
+        reset(mIkeSessionWrapper);
+        connectivityDiagCallback.onDataStallSuspected(report);
+        verify(mIkeSessionWrapper, never()).setNetwork(any());
+
+        reset(mIkev2SessionCreator);
+
+        // Send validation status update.
+        // Recovered and get network validated. It should not trigger the ike session reset.
+        ((Vpn.IkeV2VpnRunner) vpnSnapShot.vpn.mVpnRunner).onValidationStatus(
+                NetworkAgent.VALIDATION_STATUS_VALID);
+        verify(mIkev2SessionCreator, never()).createIkeSession(
+                any(), any(), any(), any(), any(), any());
+
+        // Send invalid result to verify no ike session reset since the data stall suspected
+        // variables(timer counter and boolean) was reset.
+        ((Vpn.IkeV2VpnRunner) vpnSnapShot.vpn.mVpnRunner).onValidationStatus(
+                NetworkAgent.VALIDATION_STATUS_NOT_VALID);
+        final ArgumentCaptor<Runnable> runnableCaptor = ArgumentCaptor.forClass(Runnable.class);
+        verify(mExecutor).schedule(runnableCaptor.capture(), anyLong(), any());
+        runnableCaptor.getValue().run();
+        verify(mIkev2SessionCreator, never()).createIkeSession(
+                any(), any(), any(), any(), any(), any());
+    }
+
+    @Test
+    public void testDataStallInIkev2VpnNotRecoveredByMobike() throws Exception {
+        final PlatformVpnSnapshot vpnSnapShot = verifySetupPlatformVpn(
+                createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */));
+
+        final ConnectivityDiagnosticsCallback connectivityDiagCallback =
+                getConnectivityDiagCallback();
+
+        doReturn(TEST_NETWORK).when(mMockNetworkAgent).getNetwork();
+        final DataStallReport report = createDataStallReport();
+        connectivityDiagCallback.onDataStallSuspected(report);
+
+        verifyMobikeTriggered(vpnSnapShot.vpn.mNetworkCapabilities.getUnderlyingNetworks());
+
+        reset(mIkev2SessionCreator);
+
+        // Send validation status update should result in ike session reset.
+        ((Vpn.IkeV2VpnRunner) vpnSnapShot.vpn.mVpnRunner).onValidationStatus(
+                NetworkAgent.VALIDATION_STATUS_NOT_VALID);
+
+        // Verify reset is scheduled and run.
+        final ArgumentCaptor<Runnable> runnableCaptor = ArgumentCaptor.forClass(Runnable.class);
+        verify(mExecutor).schedule(runnableCaptor.capture(), anyLong(), any());
+
+        // Another invalid status reported should not trigger other scheduled recovery.
+        reset(mExecutor);
+        ((Vpn.IkeV2VpnRunner) vpnSnapShot.vpn.mVpnRunner).onValidationStatus(
+                NetworkAgent.VALIDATION_STATUS_NOT_VALID);
+        verify(mExecutor, never()).schedule(runnableCaptor.capture(), anyLong(), any());
+
+        runnableCaptor.getValue().run();
+        verify(mIkev2SessionCreator).createIkeSession(any(), any(), any(), any(), any(), any());
     }
 
     @Test
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketClientTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketClientTests.java
index f84ebfb..b4442a5 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketClientTests.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketClientTests.java
@@ -24,6 +24,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.never;
@@ -513,11 +514,8 @@
         mdnsClient.setCallback(mockCallback);
         mdnsClient.startDiscovery();
 
-        ArgumentCaptor<MdnsResponse> mdnsResponseCaptor =
-                ArgumentCaptor.forClass(MdnsResponse.class);
-        verify(mockCallback, timeout(TIMEOUT).atLeast(1))
-                .onResponseReceived(mdnsResponseCaptor.capture());
-        assertEquals(21, mdnsResponseCaptor.getValue().getInterfaceIndex());
+        verify(mockCallback, timeout(TIMEOUT).atLeastOnce())
+                .onResponseReceived(argThat(response -> response.getInterfaceIndex() == 21));
     }
 
     @Test
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
new file mode 100644
index 0000000..72674bd
--- /dev/null
+++ b/tools/gn2bp/Android.bp.swp
@@ -0,0 +1,10872 @@
+// Copyright (C) 2022 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// This file is automatically generated by gen_android_bp. Do not edit.
+
+// GN: //base/allocator:buildflags
+genrule {
+    name: "cronet_aml_base_allocator_buildflags",
+    cmd: "echo '--flags USE_PARTITION_ALLOC=\"false\" USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base/allocator:buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/allocator/buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base/allocator/partition_allocator:chromecast_buildflags
+genrule {
+    name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
+    cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base/allocator/partition_allocator:chromecast_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/allocator/partition_allocator/chromecast_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base/allocator/partition_allocator:chromeos_buildflags
+genrule {
+    name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
+    cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base/allocator/partition_allocator:chromeos_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/allocator/partition_allocator/chromeos_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base/allocator/partition_allocator:debugging_buildflags
+genrule {
+    name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
+    cmd: "echo '--flags PA_DCHECK_IS_ON=\"true\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"true\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base/allocator/partition_allocator:debugging_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base/allocator/partition_allocator:logging_buildflags
+genrule {
+    name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
+    cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base/allocator/partition_allocator:logging_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/allocator/partition_allocator/logging_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base/allocator/partition_allocator:partition_alloc
+cc_library_static {
+    name: "cronet_aml_base_allocator_partition_allocator_partition_alloc",
+    srcs: [
+        ":cronet_aml_third_party_android_ndk_cpu_features",
+        "base/allocator/partition_allocator/address_pool_manager.cc",
+        "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
+        "base/allocator/partition_allocator/address_space_randomization.cc",
+        "base/allocator/partition_allocator/allocation_guard.cc",
+        "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
+        "base/allocator/partition_allocator/gwp_asan_support.cc",
+        "base/allocator/partition_allocator/memory_reclaimer.cc",
+        "base/allocator/partition_allocator/oom.cc",
+        "base/allocator/partition_allocator/oom_callback.cc",
+        "base/allocator/partition_allocator/page_allocator.cc",
+        "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
+        "base/allocator/partition_allocator/partition_address_space.cc",
+        "base/allocator/partition_allocator/partition_alloc.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/check.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/pkey.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
+        "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
+        "base/allocator/partition_allocator/partition_alloc_hooks.cc",
+        "base/allocator/partition_allocator/partition_bucket.cc",
+        "base/allocator/partition_allocator/partition_oom.cc",
+        "base/allocator/partition_allocator/partition_page.cc",
+        "base/allocator/partition_allocator/partition_root.cc",
+        "base/allocator/partition_allocator/partition_stats.cc",
+        "base/allocator/partition_allocator/random.cc",
+        "base/allocator/partition_allocator/reservation_offset_table.cc",
+        "base/allocator/partition_allocator/spinning_mutex.cc",
+        "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
+        "base/allocator/partition_allocator/starscan/pcscan.cc",
+        "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
+        "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
+        "base/allocator/partition_allocator/starscan/snapshot.cc",
+        "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
+        "base/allocator/partition_allocator/starscan/stack/stack.cc",
+        "base/allocator/partition_allocator/starscan/stats_collector.cc",
+        "base/allocator/partition_allocator/starscan/write_protector.cc",
+        "base/allocator/partition_allocator/tagging.cc",
+        "base/allocator/partition_allocator/thread_cache.cc",
+    ],
+    generated_headers: [
+        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
+    ],
+    export_generated_headers: [
+        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-DIS_PARTITION_ALLOC_IMPL",
+        "-DPA_PCSCAN_STACK_SUPPORTED",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/android_ndk/sources/android/cpufeatures/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //base/allocator/partition_allocator:partition_alloc_buildflags
+genrule {
+    name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
+    cmd: "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" GLUE_CORE_POOLS=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base/allocator/partition_allocator:partition_alloc_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/allocator/partition_allocator/partition_alloc_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:anchor_functions_buildflags
+genrule {
+    name: "cronet_aml_base_anchor_functions_buildflags",
+    cmd: "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:anchor_functions_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/android/library_loader/anchor_functions_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:android_runtime_jni_headers
+genrule {
+    name: "cronet_aml_base_android_runtime_jni_headers",
+    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+         "long " +
+         " " +
+         " " +
+         "--output_dir " +
+         "$(genDir)/base/android_runtime_jni_headers " +
+         "--includes " +
+         "base/android/jni_generator/jni_generator_helper.h " +
+         "--jar_file " +
+         "$(location third_party/android_sdk/public/platforms/android-33/android.jar) " +
+         "--output_name " +
+         "Runnable_jni.h " +
+         "--output_name " +
+         "Runtime_jni.h " +
+         "--input_file " +
+         "java/lang/Runnable.class " +
+         "--input_file " +
+         "java/lang/Runtime.class " +
+         "--javap " +
+         "$$(find out/.path -name javap)",
+    out: [
+        "base/android_runtime_jni_headers/Runnable_jni.h",
+        "base/android_runtime_jni_headers/Runtime_jni.h",
+    ],
+    tool_files: [
+        "base/android/jni_generator/jni_generator.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_sdk/public/platforms/android-33/android.jar",
+    ],
+}
+
+// GN: //base:base
+cc_library_static {
+    name: "cronet_aml_base_base",
+    srcs: [
+        ":cronet_aml_base_numerics_base_numerics",
+        ":cronet_aml_third_party_abseil_cpp_absl",
+        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
+        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_base",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_config",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_endian",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_strerror",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
+        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
+        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_btree",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_common",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_layout",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
+        ":cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
+        ":cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
+        ":cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
+        ":cronet_aml_third_party_abseil_cpp_absl_hash_city",
+        ":cronet_aml_third_party_abseil_cpp_absl_hash_hash",
+        ":cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
+        ":cronet_aml_third_party_abseil_cpp_absl_memory_memory",
+        ":cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
+        ":cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
+        ":cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
+        ":cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
+        ":cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_distributions",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_random",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
+        ":cronet_aml_third_party_abseil_cpp_absl_status_status",
+        ":cronet_aml_third_party_abseil_cpp_absl_status_statusor",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_strings",
+        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
+        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
+        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
+        ":cronet_aml_third_party_abseil_cpp_absl_time_time",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_compare",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_optional",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_span",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_variant",
+        ":cronet_aml_third_party_abseil_cpp_absl_utility_utility",
+        ":cronet_aml_third_party_android_ndk_cpu_features",
+        ":cronet_aml_third_party_ashmem_ashmem",
+        "base/allocator/allocator_check.cc",
+        "base/allocator/allocator_extension.cc",
+        "base/allocator/dispatcher/dispatcher.cc",
+        "base/allocator/dispatcher/internal/dispatch_data.cc",
+        "base/allocator/dispatcher/reentry_guard.cc",
+        "base/allocator/partition_allocator/shim/allocator_shim.cc",
+        "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
+        "base/android/android_hardware_buffer_compat.cc",
+        "base/android/android_image_reader_compat.cc",
+        "base/android/apk_assets.cc",
+        "base/android/application_status_listener.cc",
+        "base/android/base_feature_list.cc",
+        "base/android/base_features.cc",
+        "base/android/base_jni_onload.cc",
+        "base/android/build_info.cc",
+        "base/android/bundle_utils.cc",
+        "base/android/callback_android.cc",
+        "base/android/child_process_service.cc",
+        "base/android/command_line_android.cc",
+        "base/android/content_uri_utils.cc",
+        "base/android/cpu_features.cc",
+        "base/android/early_trace_event_binding.cc",
+        "base/android/event_log.cc",
+        "base/android/feature_list_jni.cc",
+        "base/android/features_jni.cc",
+        "base/android/field_trial_list.cc",
+        "base/android/important_file_writer_android.cc",
+        "base/android/int_string_callback.cc",
+        "base/android/jank_metric_uma_recorder.cc",
+        "base/android/java_exception_reporter.cc",
+        "base/android/java_handler_thread.cc",
+        "base/android/java_heap_dump_generator.cc",
+        "base/android/java_runtime.cc",
+        "base/android/jni_android.cc",
+        "base/android/jni_array.cc",
+        "base/android/jni_registrar.cc",
+        "base/android/jni_string.cc",
+        "base/android/jni_utils.cc",
+        "base/android/jni_weak_ref.cc",
+        "base/android/library_loader/anchor_functions.cc",
+        "base/android/library_loader/library_loader_hooks.cc",
+        "base/android/library_loader/library_prefetcher.cc",
+        "base/android/library_loader/library_prefetcher_hooks.cc",
+        "base/android/locale_utils.cc",
+        "base/android/memory_pressure_listener_android.cc",
+        "base/android/native_uma_recorder.cc",
+        "base/android/path_service_android.cc",
+        "base/android/path_utils.cc",
+        "base/android/radio_utils.cc",
+        "base/android/reached_addresses_bitset.cc",
+        "base/android/reached_code_profiler_stub.cc",
+        "base/android/remove_stale_data.cc",
+        "base/android/scoped_hardware_buffer_fence_sync.cc",
+        "base/android/scoped_hardware_buffer_handle.cc",
+        "base/android/scoped_java_ref.cc",
+        "base/android/statistics_recorder_android.cc",
+        "base/android/sys_utils.cc",
+        "base/android/task_scheduler/post_task_android.cc",
+        "base/android/task_scheduler/task_runner_android.cc",
+        "base/android/thread_instruction_count.cc",
+        "base/android/timezone_utils.cc",
+        "base/android/trace_event_binding.cc",
+        "base/android/unguessable_token_android.cc",
+        "base/at_exit.cc",
+        "base/barrier_closure.cc",
+        "base/base64.cc",
+        "base/base64url.cc",
+        "base/base_paths.cc",
+        "base/base_paths_android.cc",
+        "base/big_endian.cc",
+        "base/build_time.cc",
+        "base/callback_list.cc",
+        "base/check.cc",
+        "base/check_is_test.cc",
+        "base/check_op.cc",
+        "base/command_line.cc",
+        "base/containers/flat_tree.cc",
+        "base/containers/intrusive_heap.cc",
+        "base/containers/linked_list.cc",
+        "base/cpu.cc",
+        "base/cpu_reduction_experiment.cc",
+        "base/debug/activity_analyzer.cc",
+        "base/debug/activity_tracker.cc",
+        "base/debug/alias.cc",
+        "base/debug/asan_invalid_access.cc",
+        "base/debug/buffered_dwarf_reader.cc",
+        "base/debug/crash_logging.cc",
+        "base/debug/debugger.cc",
+        "base/debug/debugger_posix.cc",
+        "base/debug/dump_without_crashing.cc",
+        "base/debug/dwarf_line_no.cc",
+        "base/debug/elf_reader.cc",
+        "base/debug/proc_maps_linux.cc",
+        "base/debug/profiler.cc",
+        "base/debug/stack_trace.cc",
+        "base/debug/stack_trace_android.cc",
+        "base/debug/task_trace.cc",
+        "base/environment.cc",
+        "base/feature_list.cc",
+        "base/features.cc",
+        "base/file_descriptor_posix.cc",
+        "base/file_descriptor_store.cc",
+        "base/files/file.cc",
+        "base/files/file_descriptor_watcher_posix.cc",
+        "base/files/file_enumerator.cc",
+        "base/files/file_enumerator_posix.cc",
+        "base/files/file_path.cc",
+        "base/files/file_path_watcher.cc",
+        "base/files/file_path_watcher_inotify.cc",
+        "base/files/file_posix.cc",
+        "base/files/file_proxy.cc",
+        "base/files/file_tracing.cc",
+        "base/files/file_util.cc",
+        "base/files/file_util_android.cc",
+        "base/files/file_util_posix.cc",
+        "base/files/important_file_writer.cc",
+        "base/files/important_file_writer_cleaner.cc",
+        "base/files/memory_mapped_file.cc",
+        "base/files/memory_mapped_file_posix.cc",
+        "base/files/safe_base_name.cc",
+        "base/files/scoped_file.cc",
+        "base/files/scoped_file_android.cc",
+        "base/files/scoped_temp_dir.cc",
+        "base/functional/callback_helpers.cc",
+        "base/functional/callback_internal.cc",
+        "base/guid.cc",
+        "base/hash/hash.cc",
+        "base/hash/legacy_hash.cc",
+        "base/hash/md5_boringssl.cc",
+        "base/hash/sha1_boringssl.cc",
+        "base/json/json_file_value_serializer.cc",
+        "base/json/json_parser.cc",
+        "base/json/json_reader.cc",
+        "base/json/json_string_value_serializer.cc",
+        "base/json/json_value_converter.cc",
+        "base/json/json_writer.cc",
+        "base/json/string_escape.cc",
+        "base/json/values_util.cc",
+        "base/lazy_instance_helpers.cc",
+        "base/linux_util.cc",
+        "base/location.cc",
+        "base/logging.cc",
+        "base/memory/aligned_memory.cc",
+        "base/memory/discardable_memory.cc",
+        "base/memory/discardable_memory_allocator.cc",
+        "base/memory/discardable_shared_memory.cc",
+        "base/memory/madv_free_discardable_memory_allocator_posix.cc",
+        "base/memory/madv_free_discardable_memory_posix.cc",
+        "base/memory/memory_pressure_listener.cc",
+        "base/memory/memory_pressure_monitor.cc",
+        "base/memory/nonscannable_memory.cc",
+        "base/memory/page_size_posix.cc",
+        "base/memory/platform_shared_memory_handle.cc",
+        "base/memory/platform_shared_memory_mapper_android.cc",
+        "base/memory/platform_shared_memory_region.cc",
+        "base/memory/platform_shared_memory_region_android.cc",
+        "base/memory/raw_ptr.cc",
+        "base/memory/raw_ptr_asan_bound_arg_tracker.cc",
+        "base/memory/raw_ptr_asan_service.cc",
+        "base/memory/read_only_shared_memory_region.cc",
+        "base/memory/ref_counted.cc",
+        "base/memory/ref_counted_memory.cc",
+        "base/memory/shared_memory_mapper.cc",
+        "base/memory/shared_memory_mapping.cc",
+        "base/memory/shared_memory_security_policy.cc",
+        "base/memory/shared_memory_tracker.cc",
+        "base/memory/unsafe_shared_memory_pool.cc",
+        "base/memory/unsafe_shared_memory_region.cc",
+        "base/memory/weak_ptr.cc",
+        "base/memory/writable_shared_memory_region.cc",
+        "base/message_loop/message_pump.cc",
+        "base/message_loop/message_pump_android.cc",
+        "base/message_loop/message_pump_default.cc",
+        "base/message_loop/message_pump_epoll.cc",
+        "base/message_loop/message_pump_libevent.cc",
+        "base/message_loop/watchable_io_message_pump_posix.cc",
+        "base/message_loop/work_id_provider.cc",
+        "base/metrics/bucket_ranges.cc",
+        "base/metrics/crc32.cc",
+        "base/metrics/dummy_histogram.cc",
+        "base/metrics/field_trial.cc",
+        "base/metrics/field_trial_param_associator.cc",
+        "base/metrics/field_trial_params.cc",
+        "base/metrics/histogram.cc",
+        "base/metrics/histogram_base.cc",
+        "base/metrics/histogram_delta_serialization.cc",
+        "base/metrics/histogram_functions.cc",
+        "base/metrics/histogram_samples.cc",
+        "base/metrics/histogram_snapshot_manager.cc",
+        "base/metrics/metrics_hashes.cc",
+        "base/metrics/persistent_histogram_allocator.cc",
+        "base/metrics/persistent_histogram_storage.cc",
+        "base/metrics/persistent_memory_allocator.cc",
+        "base/metrics/persistent_sample_map.cc",
+        "base/metrics/ranges_manager.cc",
+        "base/metrics/sample_map.cc",
+        "base/metrics/sample_vector.cc",
+        "base/metrics/single_sample_metrics.cc",
+        "base/metrics/sparse_histogram.cc",
+        "base/metrics/statistics_recorder.cc",
+        "base/metrics/user_metrics.cc",
+        "base/native_library.cc",
+        "base/native_library_posix.cc",
+        "base/observer_list_internal.cc",
+        "base/observer_list_threadsafe.cc",
+        "base/observer_list_types.cc",
+        "base/one_shot_event.cc",
+        "base/os_compat_android.cc",
+        "base/path_service.cc",
+        "base/pending_task.cc",
+        "base/pickle.cc",
+        "base/posix/can_lower_nice_to.cc",
+        "base/posix/file_descriptor_shuffle.cc",
+        "base/posix/global_descriptors.cc",
+        "base/posix/safe_strerror.cc",
+        "base/posix/unix_domain_socket.cc",
+        "base/power_monitor/battery_level_provider.cc",
+        "base/power_monitor/battery_state_sampler.cc",
+        "base/power_monitor/moving_average.cc",
+        "base/power_monitor/power_monitor.cc",
+        "base/power_monitor/power_monitor_device_source.cc",
+        "base/power_monitor/power_monitor_device_source_android.cc",
+        "base/power_monitor/power_monitor_features.cc",
+        "base/power_monitor/power_monitor_source.cc",
+        "base/power_monitor/sampling_event_source.cc",
+        "base/power_monitor/timer_sampling_event_source.cc",
+        "base/process/environment_internal.cc",
+        "base/process/internal_linux.cc",
+        "base/process/kill.cc",
+        "base/process/kill_posix.cc",
+        "base/process/launch.cc",
+        "base/process/launch_posix.cc",
+        "base/process/memory.cc",
+        "base/process/memory_linux.cc",
+        "base/process/process_android.cc",
+        "base/process/process_handle.cc",
+        "base/process/process_handle_linux.cc",
+        "base/process/process_handle_posix.cc",
+        "base/process/process_iterator.cc",
+        "base/process/process_iterator_linux.cc",
+        "base/process/process_metrics.cc",
+        "base/process/process_metrics_linux.cc",
+        "base/process/process_metrics_posix.cc",
+        "base/process/process_posix.cc",
+        "base/profiler/arm_cfi_table.cc",
+        "base/profiler/frame.cc",
+        "base/profiler/metadata_recorder.cc",
+        "base/profiler/module_cache.cc",
+        "base/profiler/module_cache_posix.cc",
+        "base/profiler/sample_metadata.cc",
+        "base/profiler/sampling_profiler_thread_token.cc",
+        "base/profiler/stack_base_address_posix.cc",
+        "base/profiler/stack_buffer.cc",
+        "base/profiler/stack_copier.cc",
+        "base/profiler/stack_copier_signal.cc",
+        "base/profiler/stack_copier_suspend.cc",
+        "base/profiler/stack_sampler.cc",
+        "base/profiler/stack_sampler_android.cc",
+        "base/profiler/stack_sampler_impl.cc",
+        "base/profiler/stack_sampling_profiler.cc",
+        "base/profiler/thread_delegate_posix.cc",
+        "base/profiler/unwinder.cc",
+        "base/rand_util.cc",
+        "base/rand_util_posix.cc",
+        "base/run_loop.cc",
+        "base/sampling_heap_profiler/lock_free_address_hash_set.cc",
+        "base/sampling_heap_profiler/poisson_allocation_sampler.cc",
+        "base/sampling_heap_profiler/sampling_heap_profiler.cc",
+        "base/scoped_add_feature_flags.cc",
+        "base/scoped_environment_variable_override.cc",
+        "base/scoped_native_library.cc",
+        "base/sequence_checker.cc",
+        "base/sequence_checker_impl.cc",
+        "base/sequence_token.cc",
+        "base/strings/abseil_string_conversions.cc",
+        "base/strings/abseil_string_number_conversions.cc",
+        "base/strings/escape.cc",
+        "base/strings/latin1_string_conversions.cc",
+        "base/strings/pattern.cc",
+        "base/strings/safe_sprintf.cc",
+        "base/strings/strcat.cc",
+        "base/strings/string_number_conversions.cc",
+        "base/strings/string_piece.cc",
+        "base/strings/string_split.cc",
+        "base/strings/string_util.cc",
+        "base/strings/string_util_constants.cc",
+        "base/strings/stringprintf.cc",
+        "base/strings/sys_string_conversions_posix.cc",
+        "base/strings/utf_offset_string_conversions.cc",
+        "base/strings/utf_string_conversion_utils.cc",
+        "base/strings/utf_string_conversions.cc",
+        "base/substring_set_matcher/matcher_string_pattern.cc",
+        "base/substring_set_matcher/substring_set_matcher.cc",
+        "base/supports_user_data.cc",
+        "base/sync_socket.cc",
+        "base/sync_socket_posix.cc",
+        "base/synchronization/atomic_flag.cc",
+        "base/synchronization/condition_variable_posix.cc",
+        "base/synchronization/lock.cc",
+        "base/synchronization/lock_impl_posix.cc",
+        "base/synchronization/waitable_event_posix.cc",
+        "base/synchronization/waitable_event_watcher_posix.cc",
+        "base/syslog_logging.cc",
+        "base/system/sys_info.cc",
+        "base/system/sys_info_android.cc",
+        "base/system/sys_info_linux.cc",
+        "base/system/sys_info_posix.cc",
+        "base/system/system_monitor.cc",
+        "base/task/cancelable_task_tracker.cc",
+        "base/task/common/checked_lock_impl.cc",
+        "base/task/common/lazy_now.cc",
+        "base/task/common/operations_controller.cc",
+        "base/task/common/scoped_defer_task_posting.cc",
+        "base/task/common/task_annotator.cc",
+        "base/task/current_thread.cc",
+        "base/task/default_delayed_task_handle_delegate.cc",
+        "base/task/deferred_sequenced_task_runner.cc",
+        "base/task/delayed_task_handle.cc",
+        "base/task/lazy_thread_pool_task_runner.cc",
+        "base/task/post_job.cc",
+        "base/task/scoped_set_task_priority_for_current_thread.cc",
+        "base/task/sequence_manager/associated_thread_id.cc",
+        "base/task/sequence_manager/atomic_flag_set.cc",
+        "base/task/sequence_manager/delayed_task_handle_delegate.cc",
+        "base/task/sequence_manager/enqueue_order_generator.cc",
+        "base/task/sequence_manager/fence.cc",
+        "base/task/sequence_manager/hierarchical_timing_wheel.cc",
+        "base/task/sequence_manager/sequence_manager.cc",
+        "base/task/sequence_manager/sequence_manager_impl.cc",
+        "base/task/sequence_manager/sequenced_task_source.cc",
+        "base/task/sequence_manager/task_order.cc",
+        "base/task/sequence_manager/task_queue.cc",
+        "base/task/sequence_manager/task_queue_impl.cc",
+        "base/task/sequence_manager/task_queue_selector.cc",
+        "base/task/sequence_manager/tasks.cc",
+        "base/task/sequence_manager/thread_controller.cc",
+        "base/task/sequence_manager/thread_controller_impl.cc",
+        "base/task/sequence_manager/thread_controller_power_monitor.cc",
+        "base/task/sequence_manager/thread_controller_with_message_pump_impl.cc",
+        "base/task/sequence_manager/time_domain.cc",
+        "base/task/sequence_manager/timing_wheel.cc",
+        "base/task/sequence_manager/wake_up_queue.cc",
+        "base/task/sequence_manager/work_deduplicator.cc",
+        "base/task/sequence_manager/work_queue.cc",
+        "base/task/sequence_manager/work_queue_sets.cc",
+        "base/task/sequenced_task_runner.cc",
+        "base/task/simple_task_executor.cc",
+        "base/task/single_thread_task_executor.cc",
+        "base/task/single_thread_task_runner.cc",
+        "base/task/task_executor.cc",
+        "base/task/task_features.cc",
+        "base/task/task_runner.cc",
+        "base/task/task_traits.cc",
+        "base/task/thread_pool.cc",
+        "base/task/thread_pool/delayed_priority_queue.cc",
+        "base/task/thread_pool/delayed_task_manager.cc",
+        "base/task/thread_pool/environment_config.cc",
+        "base/task/thread_pool/initialization_util.cc",
+        "base/task/thread_pool/job_task_source.cc",
+        "base/task/thread_pool/pooled_parallel_task_runner.cc",
+        "base/task/thread_pool/pooled_sequenced_task_runner.cc",
+        "base/task/thread_pool/pooled_single_thread_task_runner_manager.cc",
+        "base/task/thread_pool/pooled_task_runner_delegate.cc",
+        "base/task/thread_pool/priority_queue.cc",
+        "base/task/thread_pool/sequence.cc",
+        "base/task/thread_pool/service_thread.cc",
+        "base/task/thread_pool/task.cc",
+        "base/task/thread_pool/task_source.cc",
+        "base/task/thread_pool/task_source_sort_key.cc",
+        "base/task/thread_pool/task_tracker.cc",
+        "base/task/thread_pool/thread_group.cc",
+        "base/task/thread_pool/thread_group_impl.cc",
+        "base/task/thread_pool/thread_group_native.cc",
+        "base/task/thread_pool/thread_pool_impl.cc",
+        "base/task/thread_pool/thread_pool_instance.cc",
+        "base/task/thread_pool/worker_thread.cc",
+        "base/task/thread_pool/worker_thread_stack.cc",
+        "base/third_party/cityhash/city.cc",
+        "base/third_party/cityhash_v103/src/city_v103.cc",
+        "base/third_party/nspr/prtime.cc",
+        "base/third_party/superfasthash/superfasthash.c",
+        "base/threading/hang_watcher.cc",
+        "base/threading/platform_thread.cc",
+        "base/threading/platform_thread_android.cc",
+        "base/threading/platform_thread_internal_posix.cc",
+        "base/threading/platform_thread_posix.cc",
+        "base/threading/platform_thread_ref.cc",
+        "base/threading/post_task_and_reply_impl.cc",
+        "base/threading/scoped_blocking_call.cc",
+        "base/threading/scoped_blocking_call_internal.cc",
+        "base/threading/scoped_thread_priority.cc",
+        "base/threading/sequence_local_storage_map.cc",
+        "base/threading/sequence_local_storage_slot.cc",
+        "base/threading/sequenced_task_runner_handle.cc",
+        "base/threading/simple_thread.cc",
+        "base/threading/thread.cc",
+        "base/threading/thread_checker.cc",
+        "base/threading/thread_checker_impl.cc",
+        "base/threading/thread_collision_warner.cc",
+        "base/threading/thread_id_name_manager.cc",
+        "base/threading/thread_local_storage.cc",
+        "base/threading/thread_local_storage_posix.cc",
+        "base/threading/thread_restrictions.cc",
+        "base/threading/thread_task_runner_handle.cc",
+        "base/threading/watchdog.cc",
+        "base/time/clock.cc",
+        "base/time/default_clock.cc",
+        "base/time/default_tick_clock.cc",
+        "base/time/tick_clock.cc",
+        "base/time/time.cc",
+        "base/time/time_android.cc",
+        "base/time/time_conversion_posix.cc",
+        "base/time/time_delta_from_string.cc",
+        "base/time/time_exploded_icu.cc",
+        "base/time/time_exploded_posix.cc",
+        "base/time/time_now_posix.cc",
+        "base/time/time_override.cc",
+        "base/time/time_to_iso8601.cc",
+        "base/timer/elapsed_timer.cc",
+        "base/timer/hi_res_timer_manager_posix.cc",
+        "base/timer/lap_timer.cc",
+        "base/timer/timer.cc",
+        "base/timer/wall_clock_timer.cc",
+        "base/token.cc",
+        "base/trace_event/heap_profiler_allocation_context.cc",
+        "base/trace_event/heap_profiler_allocation_context_tracker.cc",
+        "base/trace_event/memory_allocator_dump_guid.cc",
+        "base/trace_event/trace_event_stub.cc",
+        "base/trace_event/trace_id_helper.cc",
+        "base/unguessable_token.cc",
+        "base/value_iterators.cc",
+        "base/values.cc",
+        "base/version.cc",
+        "base/vlog.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
+        "cronet_aml_base_base_static",
+        "cronet_aml_base_third_party_double_conversion_double_conversion",
+        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+        "cronet_aml_third_party_boringssl_boringssl",
+        "cronet_aml_third_party_icu_icui18n",
+        "cronet_aml_third_party_icu_icuuc_private",
+        "cronet_aml_third_party_libevent_libevent",
+        "cronet_aml_third_party_modp_b64_modp_b64",
+    ],
+    generated_headers: [
+        "cronet_aml_base_allocator_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
+        "cronet_aml_base_anchor_functions_buildflags",
+        "cronet_aml_base_android_runtime_jni_headers",
+        "cronet_aml_base_base_jni_headers",
+        "cronet_aml_base_build_date",
+        "cronet_aml_base_cfi_buildflags",
+        "cronet_aml_base_clang_profiling_buildflags",
+        "cronet_aml_base_debugging_buildflags",
+        "cronet_aml_base_feature_list_buildflags",
+        "cronet_aml_base_ios_cronet_buildflags",
+        "cronet_aml_base_logging_buildflags",
+        "cronet_aml_base_message_pump_buildflags",
+        "cronet_aml_base_orderfile_buildflags",
+        "cronet_aml_base_parsing_buildflags",
+        "cronet_aml_base_power_monitor_buildflags",
+        "cronet_aml_base_profiler_buildflags",
+        "cronet_aml_base_sanitizer_buildflags",
+        "cronet_aml_base_synchronization_buildflags",
+        "cronet_aml_base_tracing_buildflags",
+        "cronet_aml_build_branding_buildflags",
+        "cronet_aml_build_chromecast_buildflags",
+        "cronet_aml_build_chromeos_buildflags",
+        "cronet_aml_build_config_compiler_compiler_buildflags",
+    ],
+    export_generated_headers: [
+        "cronet_aml_base_allocator_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
+        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
+        "cronet_aml_base_anchor_functions_buildflags",
+        "cronet_aml_base_android_runtime_jni_headers",
+        "cronet_aml_base_base_jni_headers",
+        "cronet_aml_base_build_date",
+        "cronet_aml_base_cfi_buildflags",
+        "cronet_aml_base_clang_profiling_buildflags",
+        "cronet_aml_base_debugging_buildflags",
+        "cronet_aml_base_feature_list_buildflags",
+        "cronet_aml_base_ios_cronet_buildflags",
+        "cronet_aml_base_logging_buildflags",
+        "cronet_aml_base_message_pump_buildflags",
+        "cronet_aml_base_orderfile_buildflags",
+        "cronet_aml_base_parsing_buildflags",
+        "cronet_aml_base_power_monitor_buildflags",
+        "cronet_aml_base_profiler_buildflags",
+        "cronet_aml_base_sanitizer_buildflags",
+        "cronet_aml_base_synchronization_buildflags",
+        "cronet_aml_base_tracing_buildflags",
+        "cronet_aml_build_branding_buildflags",
+        "cronet_aml_build_chromecast_buildflags",
+        "cronet_aml_build_chromeos_buildflags",
+        "cronet_aml_build_config_compiler_compiler_buildflags",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DABSL_ALLOCATOR_NOTHROW=1",
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DBASE_IMPLEMENTATION",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
+        "-DUSE_CHROMIUM_ICU=1",
+        "-DU_ENABLE_DYLOAD=0",
+        "-DU_ENABLE_RESOURCE_TRACING=0",
+        "-DU_ENABLE_TRACING=1",
+        "-DU_STATIC_IMPLEMENTATION",
+        "-DU_USING_ICU_NAMESPACE=0",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/abseil-cpp/",
+        "third_party/android_ndk/sources/android/cpufeatures/",
+        "third_party/boringssl/src/include/",
+        "third_party/icu/source/common/",
+        "third_party/icu/source/i18n/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    header_libs: [
+        "jni_headers",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //base:base_jni_headers
+genrule {
+    name: "cronet_aml_base_base_jni_headers",
+    srcs: [
+        "base/android/java/src/org/chromium/base/ApkAssets.java",
+        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
+        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
+        "base/android/java/src/org/chromium/base/BuildInfo.java",
+        "base/android/java/src/org/chromium/base/BundleUtils.java",
+        "base/android/java/src/org/chromium/base/Callback.java",
+        "base/android/java/src/org/chromium/base/CommandLine.java",
+        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
+        "base/android/java/src/org/chromium/base/CpuFeatures.java",
+        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
+        "base/android/java/src/org/chromium/base/EventLog.java",
+        "base/android/java/src/org/chromium/base/FeatureList.java",
+        "base/android/java/src/org/chromium/base/Features.java",
+        "base/android/java/src/org/chromium/base/FieldTrialList.java",
+        "base/android/java/src/org/chromium/base/FileUtils.java",
+        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
+        "base/android/java/src/org/chromium/base/IntStringCallback.java",
+        "base/android/java/src/org/chromium/base/JNIUtils.java",
+        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
+        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
+        "base/android/java/src/org/chromium/base/LocaleUtils.java",
+        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
+        "base/android/java/src/org/chromium/base/PathService.java",
+        "base/android/java/src/org/chromium/base/PathUtils.java",
+        "base/android/java/src/org/chromium/base/PowerMonitor.java",
+        "base/android/java/src/org/chromium/base/RadioUtils.java",
+        "base/android/java/src/org/chromium/base/SysUtils.java",
+        "base/android/java/src/org/chromium/base/ThreadUtils.java",
+        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
+        "base/android/java/src/org/chromium/base/TraceEvent.java",
+        "base/android/java/src/org/chromium/base/UnguessableToken.java",
+        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
+        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
+        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
+        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
+        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
+        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
+        "base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
+        "base/android/java/src/org/chromium/base/task/PostTask.java",
+        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
+    ],
+    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+         "long " +
+         " " +
+         " " +
+         "--output_dir " +
+         "$(genDir)/base/base_jni_headers " +
+         "--includes " +
+         "base/android/jni_generator/jni_generator_helper.h " +
+         "--use_proxy_hash " +
+         "--output_name " +
+         "ApkAssets_jni.h " +
+         "--output_name " +
+         "ApplicationStatus_jni.h " +
+         "--output_name " +
+         "BaseFeatureList_jni.h " +
+         "--output_name " +
+         "BuildInfo_jni.h " +
+         "--output_name " +
+         "BundleUtils_jni.h " +
+         "--output_name " +
+         "Callback_jni.h " +
+         "--output_name " +
+         "CommandLine_jni.h " +
+         "--output_name " +
+         "ContentUriUtils_jni.h " +
+         "--output_name " +
+         "CpuFeatures_jni.h " +
+         "--output_name " +
+         "EarlyTraceEvent_jni.h " +
+         "--output_name " +
+         "EventLog_jni.h " +
+         "--output_name " +
+         "FeatureList_jni.h " +
+         "--output_name " +
+         "Features_jni.h " +
+         "--output_name " +
+         "FieldTrialList_jni.h " +
+         "--output_name " +
+         "FileUtils_jni.h " +
+         "--output_name " +
+         "ImportantFileWriterAndroid_jni.h " +
+         "--output_name " +
+         "IntStringCallback_jni.h " +
+         "--output_name " +
+         "JNIUtils_jni.h " +
+         "--output_name " +
+         "JavaExceptionReporter_jni.h " +
+         "--output_name " +
+         "JavaHandlerThread_jni.h " +
+         "--output_name " +
+         "LocaleUtils_jni.h " +
+         "--output_name " +
+         "MemoryPressureListener_jni.h " +
+         "--output_name " +
+         "PathService_jni.h " +
+         "--output_name " +
+         "PathUtils_jni.h " +
+         "--output_name " +
+         "PowerMonitor_jni.h " +
+         "--output_name " +
+         "RadioUtils_jni.h " +
+         "--output_name " +
+         "SysUtils_jni.h " +
+         "--output_name " +
+         "ThreadUtils_jni.h " +
+         "--output_name " +
+         "TimezoneUtils_jni.h " +
+         "--output_name " +
+         "TraceEvent_jni.h " +
+         "--output_name " +
+         "UnguessableToken_jni.h " +
+         "--output_name " +
+         "JankMetricUMARecorder_jni.h " +
+         "--output_name " +
+         "LibraryLoader_jni.h " +
+         "--output_name " +
+         "LibraryPrefetcher_jni.h " +
+         "--output_name " +
+         "JavaHeapDumpGenerator_jni.h " +
+         "--output_name " +
+         "NativeUmaRecorder_jni.h " +
+         "--output_name " +
+         "StatisticsRecorderAndroid_jni.h " +
+         "--output_name " +
+         "ChildProcessService_jni.h " +
+         "--output_name " +
+         "PostTask_jni.h " +
+         "--output_name " +
+         "TaskRunnerImpl_jni.h " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/ApkAssets.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/ApplicationStatus.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/BaseFeatureList.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/BuildInfo.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/BundleUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/Callback.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/CommandLine.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/ContentUriUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/CpuFeatures.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/EarlyTraceEvent.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/EventLog.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/FeatureList.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/Features.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/FieldTrialList.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/FileUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/IntStringCallback.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/JNIUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/JavaExceptionReporter.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/JavaHandlerThread.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/LocaleUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/MemoryPressureListener.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/PathService.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/PathUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/PowerMonitor.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/RadioUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/SysUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/ThreadUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/TimezoneUtils.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/TraceEvent.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/UnguessableToken.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/task/PostTask.java) " +
+         "--input_file " +
+         "$(location base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java)",
+    out: [
+        "base/base_jni_headers/ApkAssets_jni.h",
+        "base/base_jni_headers/ApplicationStatus_jni.h",
+        "base/base_jni_headers/BaseFeatureList_jni.h",
+        "base/base_jni_headers/BuildInfo_jni.h",
+        "base/base_jni_headers/BundleUtils_jni.h",
+        "base/base_jni_headers/Callback_jni.h",
+        "base/base_jni_headers/ChildProcessService_jni.h",
+        "base/base_jni_headers/CommandLine_jni.h",
+        "base/base_jni_headers/ContentUriUtils_jni.h",
+        "base/base_jni_headers/CpuFeatures_jni.h",
+        "base/base_jni_headers/EarlyTraceEvent_jni.h",
+        "base/base_jni_headers/EventLog_jni.h",
+        "base/base_jni_headers/FeatureList_jni.h",
+        "base/base_jni_headers/Features_jni.h",
+        "base/base_jni_headers/FieldTrialList_jni.h",
+        "base/base_jni_headers/FileUtils_jni.h",
+        "base/base_jni_headers/ImportantFileWriterAndroid_jni.h",
+        "base/base_jni_headers/IntStringCallback_jni.h",
+        "base/base_jni_headers/JNIUtils_jni.h",
+        "base/base_jni_headers/JankMetricUMARecorder_jni.h",
+        "base/base_jni_headers/JavaExceptionReporter_jni.h",
+        "base/base_jni_headers/JavaHandlerThread_jni.h",
+        "base/base_jni_headers/JavaHeapDumpGenerator_jni.h",
+        "base/base_jni_headers/LibraryLoader_jni.h",
+        "base/base_jni_headers/LibraryPrefetcher_jni.h",
+        "base/base_jni_headers/LocaleUtils_jni.h",
+        "base/base_jni_headers/MemoryPressureListener_jni.h",
+        "base/base_jni_headers/NativeUmaRecorder_jni.h",
+        "base/base_jni_headers/PathService_jni.h",
+        "base/base_jni_headers/PathUtils_jni.h",
+        "base/base_jni_headers/PostTask_jni.h",
+        "base/base_jni_headers/PowerMonitor_jni.h",
+        "base/base_jni_headers/RadioUtils_jni.h",
+        "base/base_jni_headers/StatisticsRecorderAndroid_jni.h",
+        "base/base_jni_headers/SysUtils_jni.h",
+        "base/base_jni_headers/TaskRunnerImpl_jni.h",
+        "base/base_jni_headers/ThreadUtils_jni.h",
+        "base/base_jni_headers/TimezoneUtils_jni.h",
+        "base/base_jni_headers/TraceEvent_jni.h",
+        "base/base_jni_headers/UnguessableToken_jni.h",
+    ],
+    tool_files: [
+        "base/android/jni_generator/jni_generator.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+    ],
+}
+
+// GN: //base:base_static
+cc_library_static {
+    name: "cronet_aml_base_base_static",
+    srcs: [
+        "base/base_switches.cc",
+    ],
+    generated_headers: [
+        "cronet_aml_build_chromeos_buildflags",
+    ],
+    export_generated_headers: [
+        "cronet_aml_build_chromeos_buildflags",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //base:build_date
+genrule {
+    name: "cronet_aml_base_build_date",
+    cmd: "$(location build/write_build_date_header.py) $(out) " +
+         "1664686800",
+    out: [
+        "base/generated_build_date.h",
+    ],
+    tool_files: [
+        "build/write_build_date_header.py",
+    ],
+}
+
+// GN: //base:cfi_buildflags
+genrule {
+    name: "cronet_aml_base_cfi_buildflags",
+    cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_DIAG=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:cfi_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/cfi_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:clang_profiling_buildflags
+genrule {
+    name: "cronet_aml_base_clang_profiling_buildflags",
+    cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:clang_profiling_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/clang_profiling_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:debugging_buildflags
+genrule {
+    name: "cronet_aml_base_debugging_buildflags",
+    cmd: "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"true\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"false\" ENABLE_GDBINIT_WARNING=\"true\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"true\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:debugging_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/debug/debugging_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:feature_list_buildflags
+genrule {
+    name: "cronet_aml_base_feature_list_buildflags",
+    cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:feature_list_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/feature_list_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:ios_cronet_buildflags
+genrule {
+    name: "cronet_aml_base_ios_cronet_buildflags",
+    cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:ios_cronet_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/message_loop/ios_cronet_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:jni_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_base_jni_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location build/android/build_java.build_config.json)\", \"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/base/jni_java.build_config.json " +
+         "--gn-target " +
+         "//base:jni_java " +
+         "--device-jar-path " +
+         "$(location base/jni_java.processed.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/base/jni_java.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location base/jni_java.processed.jar) " +
+         "--interface-jar-path " +
+         "$(location base/jni_java.turbine.jar) " +
+         "--dex-path " +
+         "obj/base/jni_java.dex.jar " +
+         "--supports-android " +
+         "--java-sources-file " +
+         "gen/base/jni_java.sources " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "base/jni_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //base:jni_java__compile_java
+genrule {
+    name: "cronet_aml_base_jni_java__compile_java",
+    srcs: [
+        "base/android/java/src/org/chromium/base/JniException.java",
+        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
+        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
+        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
+        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
+        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
+        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
+        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
+        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/base/jni_java__compile_java.d " +
+         "--generated-dir " +
+         "gen/base/jni_java/generated_java " +
+         "--jar-path " +
+         "obj/base/jni_java.processed.jar " +
+         "--java-srcjars " +
+         "[\"gen/base/jni_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//base:jni_java__compile_java " +
+         "--header-jar " +
+         "obj/base/jni_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/base/jni_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/base/jni_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "@gen/base/jni_java.sources",
+    out: [
+        "//out/test/obj/base/jni_java.processed.jar",
+        "//out/test/obj/base/jni_java.processed.jar.info",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/base/jni_java.build_config.json",
+        "out/test/gen/base/jni_java.generated.srcjar",
+        "out/test/gen/base/jni_java.sources",
+        "out/test/obj/base/jni_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //base:jni_java__dex
+genrule {
+    name: "cronet_aml_base_jni_java__dex",
+    cmd: "$(location build/android/gyp/dex.py) --depfile " +
+         "gen/base/jni_java__dex.d " +
+         "--output " +
+         "obj/base/jni_java.dex.jar " +
+         "--min-api " +
+         "19 " +
+         "--r8-jar-path " +
+         "../../third_party/r8/lib/r8.jar " +
+         "--custom-d8-jar-path " +
+         "../../third_party/r8/custom_d8.jar " +
+         "--incremental-dir " +
+         "obj/base/jni_java__dex " +
+         "--library " +
+         "--class-inputs " +
+         "[\"obj/base/jni_java.processed.jar\"] " +
+         "--desugar " +
+         "--desugar-jdk-libs-json " +
+         "../../third_party/r8/desugar_jdk_libs.json " +
+         "--show-desugar-default-interface-warnings " +
+         "--classpath " +
+         "obj/base/jni_java.processed.jar " +
+         "--desugar-dependencies " +
+         "gen/base/jni_java__dex.desugardeps " +
+         "--bootclasspath " +
+         "@FileArg(gen/base/jni_java.build_config.json:android:sdk_jars) " +
+         "--classpath " +
+         "@FileArg(gen/base/jni_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--force-enable-assertions",
+    out: [
+        "//out/test/obj/base/jni_java.dex.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/dex.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/zipalign.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/obj/base/jni_java.processed.jar",
+        "third_party/r8/custom_d8.jar",
+        "third_party/r8/d8/lib/r8.jar",
+        "third_party/r8/desugar_jdk_libs.json",
+    ],
+}
+
+// GN: //base:jni_java__errorprone
+genrule {
+    name: "cronet_aml_base_jni_java__errorprone",
+    srcs: [
+        "base/android/java/src/org/chromium/base/JniException.java",
+        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
+        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
+        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
+        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
+        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
+        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
+        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
+        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/base/jni_java__errorprone.d " +
+         "--generated-dir " +
+         "gen/base/jni_java/generated_java " +
+         "--jar-path " +
+         "obj/base/jni_java__errorprone.errorprone.stamp " +
+         "--java-srcjars " +
+         "[\"gen/base/jni_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//base:jni_java__errorprone " +
+         "--header-jar " +
+         "obj/base/jni_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/base/jni_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/base/jni_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "--processorpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:deps_info:host_classpath) " +
+         "--enable-errorprone " +
+         "@gen/base/jni_java.sources",
+    out: [
+        "//out/test/obj/base/jni_java__errorprone.errorprone.stamp",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/base/jni_java.build_config.json",
+        "out/test/gen/base/jni_java.generated.srcjar",
+        "out/test/gen/base/jni_java.sources",
+        "out/test/obj/base/jni_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //base:jni_java__header
+genrule {
+    name: "cronet_aml_base_jni_java__header",
+    srcs: [
+        "base/android/java/src/org/chromium/base/JniException.java",
+        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
+        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
+        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
+        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
+        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
+        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
+        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
+        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
+        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
+    ],
+    cmd: "$(location build/android/gyp/turbine.py) --depfile " +
+         "gen/base/jni_java__header.d " +
+         "--generated-dir " +
+         "gen/base/jni_java/generated_java " +
+         "--jar-path " +
+         "obj/base/jni_java.turbine.jar " +
+         "--java-srcjars " +
+         "[] " +
+         "--target-name " +
+         "//base:jni_java__header " +
+         "--classpath " +
+         "@FileArg(gen/base/jni_java.build_config.json:javac:interface_classpath) " +
+         "--processorpath " +
+         "@FileArg(gen/base/jni_java.build_config.json:javac:processor_classpath) " +
+         "--processors " +
+         "@FileArg(gen/base/jni_java.build_config.json:javac:processor_classes) " +
+         "--turbine-jar-path " +
+         "../../third_party/turbine/turbine.jar " +
+         "--generated-jar-path " +
+         "gen/base/jni_java.generated.srcjar " +
+         "--chromium-code " +
+         "1 " +
+         "@gen/base/jni_java.sources",
+    out: [
+        "//out/test/obj/base/jni_java.turbine.jar",
+        "base/jni_java.generated.srcjar",
+    ],
+    tool_files: [
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/turbine.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "out/test/gen/base/jni_java.build_config.json",
+        "out/test/gen/base/jni_java.sources",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "third_party/turbine/turbine.jar",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //base:jni_java__host
+genrule {
+    name: "cronet_aml_base_jni_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "obj/base/jni_java.processed.jar " +
+         "--output " +
+         "lib.java/base/jni_java.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/base/jni_java.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/obj/base/jni_java.processed.jar",
+    ],
+}
+
+// GN: //base:jni_java__validate
+genrule {
+    name: "cronet_aml_base_jni_java__validate",
+    cmd: "$(location build/android/gyp/bytecode_processor.py) --target-name " +
+         "//base:jni_java__validate " +
+         "--script " +
+         "bin/helper/bytecode_processor " +
+         "--gn-target " +
+         "//base:jni_java " +
+         "--input-jar " +
+         "obj/base/jni_java.processed.jar " +
+         "--stamp " +
+         "obj/base/jni_java__validate.bytecode.stamp " +
+         "--direct-classpath-jars " +
+         "@FileArg(gen/base/jni_java.build_config.json:javac:classpath) " +
+         "--full-classpath-jars " +
+         "@FileArg(gen/base/jni_java.build_config.json:deps_info:javac_full_classpath) " +
+         "--full-classpath-gn-targets " +
+         "@FileArg(gen/base/jni_java.build_config.json:deps_info:javac_full_classpath_targets)",
+    out: [
+        "//out/test/obj/base/jni_java__validate.bytecode.stamp",
+    ],
+    tool_files: [
+        "build/android/gyp/bytecode_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/gn_helpers.py",
+        "out/test/bin/helper/bytecode_processor",
+        "out/test/gen/base/jni_java.build_config.json",
+        "out/test/obj/base/jni_java.processed.jar",
+    ],
+}
+
+// GN: //base:logging_buildflags
+genrule {
+    name: "cronet_aml_base_logging_buildflags",
+    cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:logging_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/logging_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:message_pump_buildflags
+genrule {
+    name: "cronet_aml_base_message_pump_buildflags",
+    cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:message_pump_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/message_loop/message_pump_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base/numerics:base_numerics
+filegroup {
+    name: "cronet_aml_base_numerics_base_numerics",
+}
+
+// GN: //base:orderfile_buildflags
+genrule {
+    name: "cronet_aml_base_orderfile_buildflags",
+    cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:orderfile_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/android/orderfile/orderfile_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:parsing_buildflags
+genrule {
+    name: "cronet_aml_base_parsing_buildflags",
+    cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:parsing_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/parsing_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:power_monitor_buildflags
+genrule {
+    name: "cronet_aml_base_power_monitor_buildflags",
+    cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:power_monitor_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/power_monitor/power_monitor_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:profiler_buildflags
+genrule {
+    name: "cronet_aml_base_profiler_buildflags",
+    cmd: "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:profiler_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/profiler/profiler_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:sanitizer_buildflags
+genrule {
+    name: "cronet_aml_base_sanitizer_buildflags",
+    cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:sanitizer_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/sanitizer_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base:synchronization_buildflags
+genrule {
+    name: "cronet_aml_base_synchronization_buildflags",
+    cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:synchronization_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/synchronization/synchronization_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //base/third_party/double_conversion:double_conversion
+cc_library_static {
+    name: "cronet_aml_base_third_party_double_conversion_double_conversion",
+    srcs: [
+        "base/third_party/double_conversion/double-conversion/bignum-dtoa.cc",
+        "base/third_party/double_conversion/double-conversion/bignum.cc",
+        "base/third_party/double_conversion/double-conversion/cached-powers.cc",
+        "base/third_party/double_conversion/double-conversion/double-to-string.cc",
+        "base/third_party/double_conversion/double-conversion/fast-dtoa.cc",
+        "base/third_party/double_conversion/double-conversion/fixed-dtoa.cc",
+        "base/third_party/double_conversion/double-conversion/string-to-double.cc",
+        "base/third_party/double_conversion/double-conversion/strtod.cc",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //base/third_party/dynamic_annotations:dynamic_annotations
+cc_library_static {
+    name: "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+    srcs: [
+        "base/third_party/dynamic_annotations/dynamic_annotations.c",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //base:tracing_buildflags
+genrule {
+    name: "cronet_aml_base_tracing_buildflags",
+    cmd: "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//base:tracing_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "base/tracing_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //build/android:build_config_gen
+genrule {
+    name: "cronet_aml_build_android_build_config_gen",
+    cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+         "[\"../../\", \"gen\"] " +
+         "--output " +
+         "gen/build/android/build_config_gen.srcjar " +
+         "--define " +
+         "_ENABLE_ASSERTS " +
+         "../../build/android/java/templates/BuildConfig.template",
+    out: [
+        "build/android/build_config_gen.srcjar",
+    ],
+    tool_files: [
+        "build/android/gyp/gcc_preprocess.py",
+        "build/android/java/templates/BuildConfig.template",
+    ],
+}
+
+// GN: //build/android:build_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_build_android_build_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/build/android/build_java.build_config.json " +
+         "--gn-target " +
+         "//build/android:build_java " +
+         "--device-jar-path " +
+         "$(location build/android/build_java.processed.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/build/android/build_java.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location build/android/build_java.javac.jar) " +
+         "--interface-jar-path " +
+         "$(location build/android/build_java.turbine.jar) " +
+         "--dex-path " +
+         "obj/build/android/build_java.dex.jar " +
+         "--supports-android " +
+         "--java-sources-file " +
+         "gen/build/android/build_java.sources " +
+         "--bundled-srcjars " +
+         "[\"$(location build/android/build_config_gen.srcjar)\", \"$(location build/android/native_libraries_gen.srcjar)\"] " +
+         "--proguard-configs " +
+         "[$(location build/android/chromium_annotations.flags)]",
+    out: [
+        "build/android/build_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/chromium_annotations.flags",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //build/android:build_java__compile_java
+genrule {
+    name: "cronet_aml_build_android_build_java__compile_java",
+    srcs: [
+        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
+        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
+        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
+        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
+        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
+        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
+        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
+        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/build/android/build_java__compile_java.d " +
+         "--generated-dir " +
+         "gen/build/android/build_java/generated_java " +
+         "--jar-path " +
+         "obj/build/android/build_java.javac.jar " +
+         "--java-srcjars " +
+         "[\"gen/build/android/build_config_gen.srcjar\", \"gen/build/android/native_libraries_gen.srcjar\", \"gen/build/android/build_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//build/android:build_java__compile_java " +
+         "--header-jar " +
+         "obj/build/android/build_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/build/android/build_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/build/android/build_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "--jar-info-exclude-globs " +
+         "[\"*/build/BuildConfig.class\", \"*/NativeLibraries.class\"] " +
+         "@gen/build/android/build_java.sources",
+    out: [
+        "//out/test/obj/build/android/build_java.javac.jar",
+        "//out/test/obj/build/android/build_java.javac.jar.info",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/build/android/build_config_gen.srcjar",
+        "out/test/gen/build/android/build_java.build_config.json",
+        "out/test/gen/build/android/build_java.generated.srcjar",
+        "out/test/gen/build/android/build_java.sources",
+        "out/test/gen/build/android/native_libraries_gen.srcjar",
+        "out/test/obj/build/android/build_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //build/android:build_java__dex
+genrule {
+    name: "cronet_aml_build_android_build_java__dex",
+    cmd: "$(location build/android/gyp/dex.py) --depfile " +
+         "gen/build/android/build_java__dex.d " +
+         "--output " +
+         "obj/build/android/build_java.dex.jar " +
+         "--min-api " +
+         "19 " +
+         "--r8-jar-path " +
+         "../../third_party/r8/lib/r8.jar " +
+         "--custom-d8-jar-path " +
+         "../../third_party/r8/custom_d8.jar " +
+         "--incremental-dir " +
+         "obj/build/android/build_java__dex " +
+         "--library " +
+         "--class-inputs " +
+         "[\"obj/build/android/build_java.processed.jar\"] " +
+         "--desugar " +
+         "--desugar-jdk-libs-json " +
+         "../../third_party/r8/desugar_jdk_libs.json " +
+         "--show-desugar-default-interface-warnings " +
+         "--classpath " +
+         "obj/build/android/build_java.javac.jar " +
+         "--desugar-dependencies " +
+         "gen/build/android/build_java__dex.desugardeps " +
+         "--bootclasspath " +
+         "@FileArg(gen/build/android/build_java.build_config.json:android:sdk_jars) " +
+         "--classpath " +
+         "@FileArg(gen/build/android/build_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--force-enable-assertions",
+    out: [
+        "//out/test/obj/build/android/build_java.dex.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/dex.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/zipalign.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/obj/build/android/build_java.javac.jar",
+        "out/test/obj/build/android/build_java.processed.jar",
+        "third_party/r8/custom_d8.jar",
+        "third_party/r8/d8/lib/r8.jar",
+        "third_party/r8/desugar_jdk_libs.json",
+    ],
+}
+
+// GN: //build/android:build_java__errorprone
+genrule {
+    name: "cronet_aml_build_android_build_java__errorprone",
+    srcs: [
+        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
+        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
+        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
+        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
+        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
+        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
+        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
+        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/build/android/build_java__errorprone.d " +
+         "--generated-dir " +
+         "gen/build/android/build_java/generated_java " +
+         "--jar-path " +
+         "obj/build/android/build_java__errorprone.errorprone.stamp " +
+         "--java-srcjars " +
+         "[\"gen/build/android/build_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//build/android:build_java__errorprone " +
+         "--header-jar " +
+         "obj/build/android/build_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/build/android/build_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/build/android/build_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "--jar-info-exclude-globs " +
+         "[\"*/build/BuildConfig.class\", \"*/NativeLibraries.class\"] " +
+         "--processorpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:deps_info:host_classpath) " +
+         "--enable-errorprone " +
+         "@gen/build/android/build_java.sources",
+    out: [
+        "//out/test/obj/build/android/build_java__errorprone.errorprone.stamp",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/build/android/build_java.build_config.json",
+        "out/test/gen/build/android/build_java.generated.srcjar",
+        "out/test/gen/build/android/build_java.sources",
+        "out/test/obj/build/android/build_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //build/android:build_java__header
+genrule {
+    name: "cronet_aml_build_android_build_java__header",
+    srcs: [
+        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
+        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
+        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
+        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
+        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
+        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
+        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
+        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
+    ],
+    cmd: "$(location build/android/gyp/turbine.py) --depfile " +
+         "gen/build/android/build_java__header.d " +
+         "--generated-dir " +
+         "gen/build/android/build_java/generated_java " +
+         "--jar-path " +
+         "obj/build/android/build_java.turbine.jar " +
+         "--java-srcjars " +
+         "[\"gen/build/android/build_config_gen.srcjar\", \"gen/build/android/native_libraries_gen.srcjar\"] " +
+         "--target-name " +
+         "//build/android:build_java__header " +
+         "--classpath " +
+         "@FileArg(gen/build/android/build_java.build_config.json:javac:interface_classpath) " +
+         "--processorpath " +
+         "@FileArg(gen/build/android/build_java.build_config.json:javac:processor_classpath) " +
+         "--processors " +
+         "@FileArg(gen/build/android/build_java.build_config.json:javac:processor_classes) " +
+         "--turbine-jar-path " +
+         "../../third_party/turbine/turbine.jar " +
+         "--generated-jar-path " +
+         "gen/build/android/build_java.generated.srcjar " +
+         "--chromium-code " +
+         "1 " +
+         "--jar-info-exclude-globs " +
+         "[\"*/build/BuildConfig.class\", \"*/NativeLibraries.class\"] " +
+         "@gen/build/android/build_java.sources",
+    out: [
+        "//out/test/obj/build/android/build_java.turbine.jar",
+        "build/android/build_java.generated.srcjar",
+    ],
+    tool_files: [
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/turbine.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "out/test/gen/build/android/build_config_gen.srcjar",
+        "out/test/gen/build/android/build_java.build_config.json",
+        "out/test/gen/build/android/build_java.sources",
+        "out/test/gen/build/android/native_libraries_gen.srcjar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "third_party/turbine/turbine.jar",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //build/android:build_java__host
+genrule {
+    name: "cronet_aml_build_android_build_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "obj/build/android/build_java.javac.jar " +
+         "--output " +
+         "lib.java/build/android/build_java.jar " +
+         "--exclude-globs " +
+         "[\"*/build/BuildConfig.class\", \"*/NativeLibraries.class\"] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/build/android/build_java.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/obj/build/android/build_java.javac.jar",
+    ],
+}
+
+// GN: //build/android:build_java__process_device
+genrule {
+    name: "cronet_aml_build_android_build_java__process_device",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "obj/build/android/build_java.javac.jar " +
+         "--output " +
+         "obj/build/android/build_java.processed.jar " +
+         "--exclude-globs " +
+         "[\"*/build/BuildConfig.class\", \"*/NativeLibraries.class\"] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/obj/build/android/build_java.processed.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/obj/build/android/build_java.javac.jar",
+    ],
+}
+
+// GN: //build/android:build_java__validate
+genrule {
+    name: "cronet_aml_build_android_build_java__validate",
+    cmd: "$(location build/android/gyp/bytecode_processor.py) --target-name " +
+         "//build/android:build_java__validate " +
+         "--script " +
+         "bin/helper/bytecode_processor " +
+         "--gn-target " +
+         "//build/android:build_java " +
+         "--input-jar " +
+         "obj/build/android/build_java.javac.jar " +
+         "--stamp " +
+         "obj/build/android/build_java__validate.bytecode.stamp " +
+         "--direct-classpath-jars " +
+         "@FileArg(gen/build/android/build_java.build_config.json:javac:classpath) " +
+         "--full-classpath-jars " +
+         "@FileArg(gen/build/android/build_java.build_config.json:deps_info:javac_full_classpath) " +
+         "--full-classpath-gn-targets " +
+         "@FileArg(gen/build/android/build_java.build_config.json:deps_info:javac_full_classpath_targets)",
+    out: [
+        "//out/test/obj/build/android/build_java__validate.bytecode.stamp",
+    ],
+    tool_files: [
+        "build/android/gyp/bytecode_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/gn_helpers.py",
+        "out/test/bin/helper/bytecode_processor",
+        "out/test/gen/build/android/build_java.build_config.json",
+        "out/test/obj/build/android/build_java.javac.jar",
+    ],
+}
+
+// GN: //build/android/bytecode:bytecode_processor__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_build_android_bytecode_bytecode_processor__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_binary " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location build/android/bytecode/bytecode_processor_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/build/android/bytecode/bytecode_processor.build_config.json " +
+         "--gn-target " +
+         "//build/android/bytecode:bytecode_processor " +
+         "--bundled-srcjars " +
+         "[] " +
+         "--main-class " +
+         "org.chromium.bytecode.ByteCodeProcessor",
+    out: [
+        "build/android/bytecode/bytecode_processor.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //build/android/bytecode:bytecode_processor__java_binary_script
+genrule {
+    name: "cronet_aml_build_android_bytecode_bytecode_processor__java_binary_script",
+    cmd: "$(location build/android/gyp/create_java_binary_script.py) --output " +
+         "bin/helper/bytecode_processor " +
+         "--main-class " +
+         "org.chromium.bytecode.ByteCodeProcessor " +
+         "--classpath " +
+         "@FileArg(gen/build/android/bytecode/bytecode_processor.build_config.json:deps_info:host_classpath) " +
+         "--noverify",
+    out: [
+        "//out/test/bin/helper/bytecode_processor",
+    ],
+    tool_files: [
+        "build/android/gyp/create_java_binary_script.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/gen/build/android/bytecode/bytecode_processor.build_config.json",
+    ],
+}
+
+// GN: //build/android/bytecode:bytecode_processor_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_build_android_bytecode_bytecode_processor_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/org_ow2_asm_asm_java.build_config.json)\", \"$(location third_party/android_deps/org_ow2_asm_asm_util_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/build/android/bytecode/bytecode_processor_java.build_config.json " +
+         "--gn-target " +
+         "//build/android/bytecode:bytecode_processor_java " +
+         "--host-jar-path " +
+         "$(location lib.java/build/android/bytecode/bytecode_processor_java.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location build/android/bytecode/bytecode_processor_java.javac.jar) " +
+         "--interface-jar-path " +
+         "$(location build/android/bytecode/bytecode_processor_java.turbine.jar) " +
+         "--java-sources-file " +
+         "gen/build/android/bytecode/bytecode_processor_java.sources " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "build/android/bytecode/bytecode_processor_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //build/android/bytecode:bytecode_processor_java__compile_java
+genrule {
+    name: "cronet_aml_build_android_bytecode_bytecode_processor_java__compile_java",
+    srcs: [
+        "build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java",
+        "build/android/bytecode/java/org/chromium/bytecode/ClassPathValidator.java",
+        "build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/build/android/bytecode/bytecode_processor_java__compile_java.d " +
+         "--generated-dir " +
+         "gen/build/android/bytecode/bytecode_processor_java/generated_java " +
+         "--jar-path " +
+         "obj/build/android/bytecode/bytecode_processor_java.javac.jar " +
+         "--java-srcjars " +
+         "[\"gen/build/android/bytecode/bytecode_processor_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//build/android/bytecode:bytecode_processor_java__compile_java " +
+         "--header-jar " +
+         "obj/build/android/bytecode/bytecode_processor_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/build/android/bytecode/bytecode_processor_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/build/android/bytecode/bytecode_processor_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "@gen/build/android/bytecode/bytecode_processor_java.sources",
+    out: [
+        "//out/test/obj/build/android/bytecode/bytecode_processor_java.javac.jar",
+        "//out/test/obj/build/android/bytecode/bytecode_processor_java.javac.jar.info",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.build_config.json",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.generated.srcjar",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.sources",
+        "out/test/obj/build/android/bytecode/bytecode_processor_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //build/android/bytecode:bytecode_processor_java__errorprone
+genrule {
+    name: "cronet_aml_build_android_bytecode_bytecode_processor_java__errorprone",
+    srcs: [
+        "build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java",
+        "build/android/bytecode/java/org/chromium/bytecode/ClassPathValidator.java",
+        "build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/build/android/bytecode/bytecode_processor_java__errorprone.d " +
+         "--generated-dir " +
+         "gen/build/android/bytecode/bytecode_processor_java/generated_java " +
+         "--jar-path " +
+         "obj/build/android/bytecode/bytecode_processor_java__errorprone.errorprone.stamp " +
+         "--java-srcjars " +
+         "[\"gen/build/android/bytecode/bytecode_processor_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//build/android/bytecode:bytecode_processor_java__errorprone " +
+         "--header-jar " +
+         "obj/build/android/bytecode/bytecode_processor_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/build/android/bytecode/bytecode_processor_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/build/android/bytecode/bytecode_processor_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "--processorpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:deps_info:host_classpath) " +
+         "--enable-errorprone " +
+         "@gen/build/android/bytecode/bytecode_processor_java.sources",
+    out: [
+        "//out/test/obj/build/android/bytecode/bytecode_processor_java__errorprone.errorprone.stamp",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.build_config.json",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.generated.srcjar",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.sources",
+        "out/test/obj/build/android/bytecode/bytecode_processor_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //build/android/bytecode:bytecode_processor_java__header
+genrule {
+    name: "cronet_aml_build_android_bytecode_bytecode_processor_java__header",
+    srcs: [
+        "build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java",
+        "build/android/bytecode/java/org/chromium/bytecode/ClassPathValidator.java",
+        "build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java",
+    ],
+    cmd: "$(location build/android/gyp/turbine.py) --depfile " +
+         "gen/build/android/bytecode/bytecode_processor_java__header.d " +
+         "--generated-dir " +
+         "gen/build/android/bytecode/bytecode_processor_java/generated_java " +
+         "--jar-path " +
+         "obj/build/android/bytecode/bytecode_processor_java.turbine.jar " +
+         "--java-srcjars " +
+         "[] " +
+         "--target-name " +
+         "//build/android/bytecode:bytecode_processor_java__header " +
+         "--classpath " +
+         "@FileArg(gen/build/android/bytecode/bytecode_processor_java.build_config.json:javac:interface_classpath) " +
+         "--processorpath " +
+         "@FileArg(gen/build/android/bytecode/bytecode_processor_java.build_config.json:javac:processor_classpath) " +
+         "--processors " +
+         "@FileArg(gen/build/android/bytecode/bytecode_processor_java.build_config.json:javac:processor_classes) " +
+         "--turbine-jar-path " +
+         "../../third_party/turbine/turbine.jar " +
+         "--generated-jar-path " +
+         "gen/build/android/bytecode/bytecode_processor_java.generated.srcjar " +
+         "--chromium-code " +
+         "1 " +
+         "@gen/build/android/bytecode/bytecode_processor_java.sources",
+    out: [
+        "//out/test/obj/build/android/bytecode/bytecode_processor_java.turbine.jar",
+        "build/android/bytecode/bytecode_processor_java.generated.srcjar",
+    ],
+    tool_files: [
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/turbine.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.build_config.json",
+        "out/test/gen/build/android/bytecode/bytecode_processor_java.sources",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "third_party/turbine/turbine.jar",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //build/android/bytecode:bytecode_processor_java__host
+genrule {
+    name: "cronet_aml_build_android_bytecode_bytecode_processor_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "obj/build/android/bytecode/bytecode_processor_java.javac.jar " +
+         "--output " +
+         "lib.java/build/android/bytecode/bytecode_processor_java.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/build/android/bytecode/bytecode_processor_java.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/obj/build/android/bytecode/bytecode_processor_java.javac.jar",
+    ],
+}
+
+// GN: //build/android:native_libraries_gen
+genrule {
+    name: "cronet_aml_build_android_native_libraries_gen",
+    cmd: "$(location build/android/gyp/write_native_libraries_java.py) --output " +
+         "gen/build/android/native_libraries_gen.srcjar " +
+         "--cpu-family " +
+         "CPU_FAMILY_X86",
+    out: [
+        "build/android/native_libraries_gen.srcjar",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/write_native_libraries_java.py",
+        "build/gn_helpers.py",
+    ],
+}
+
+// GN: //build:branding_buildflags
+genrule {
+    name: "cronet_aml_build_branding_buildflags",
+    cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//build:branding_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "build/branding_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //build:buildflag_header_h
+filegroup {
+    name: "cronet_aml_build_buildflag_header_h",
+}
+
+// GN: //build:chromecast_buildflags
+genrule {
+    name: "cronet_aml_build_chromecast_buildflags",
+    cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//build:chromecast_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "build/chromecast_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //build:chromeos_buildflags
+genrule {
+    name: "cronet_aml_build_chromeos_buildflags",
+    cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//build:chromeos_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "build/chromeos_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //build/config/compiler:compiler_buildflags
+genrule {
+    name: "cronet_aml_build_config_compiler_compiler_buildflags",
+    cmd: "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//build/config/compiler:compiler_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "build/config/compiler/compiler_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //buildtools/third_party/libc++:libc++
+filegroup {
+    name: "cronet_aml_buildtools_third_party_libc___libc__",
+}
+
+// GN: //buildtools/third_party/libc++abi:libc++abi
+filegroup {
+    name: "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+}
+
+// GN: //crypto:buildflags
+genrule {
+    name: "cronet_aml_crypto_buildflags",
+    cmd: "echo '--flags USE_NSS_CERTS=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//crypto:buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "crypto/crypto_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //crypto:crypto
+cc_library_static {
+    name: "cronet_aml_crypto_crypto",
+    srcs: [
+        "crypto/aead.cc",
+        "crypto/ec_private_key.cc",
+        "crypto/ec_signature_creator.cc",
+        "crypto/ec_signature_creator_impl.cc",
+        "crypto/encryptor.cc",
+        "crypto/hkdf.cc",
+        "crypto/hmac.cc",
+        "crypto/openssl_util.cc",
+        "crypto/p224_spake.cc",
+        "crypto/random.cc",
+        "crypto/rsa_private_key.cc",
+        "crypto/secure_hash.cc",
+        "crypto/secure_util.cc",
+        "crypto/sha2.cc",
+        "crypto/signature_creator.cc",
+        "crypto/signature_verifier.cc",
+        "crypto/symmetric_key.cc",
+        "crypto/unexportable_key.cc",
+        "crypto/unexportable_key_metrics.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+        "cronet_aml_third_party_boringssl_boringssl",
+    ],
+    generated_headers: [
+        "cronet_aml_crypto_buildflags",
+    ],
+    export_generated_headers: [
+        "cronet_aml_crypto_buildflags",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCRYPTO_IMPLEMENTATION",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //gn:default_deps
+cc_defaults {
+    name: "cronet_aml_defaults",
+    cflags: [
+        "-O2",
+        "-Wno-error=return-type",
+        "-Wno-missing-field-initializers",
+        "-Wno-non-virtual-dtor",
+        "-Wno-sign-compare",
+        "-Wno-sign-promo",
+        "-Wno-unused-parameter",
+        "-fvisibility=hidden",
+    ],
+    stl: "none",
+}
+
+// GN: //ipc:param_traits
+filegroup {
+    name: "cronet_aml_ipc_param_traits",
+}
+
+// GN: //net:buildflags
+genrule {
+    name: "cronet_aml_net_buildflags",
+    cmd: "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//net:buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "net/net_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //net/cert:root_store_proto_full
+cc_library_static {
+    name: "cronet_aml_net_cert_root_store_proto_full",
+    srcs: [
+        "out/test/clang_x64/gen/net/cert/root_store_proto_full/root_store.pb.cc",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_protobuf_protobuf_full",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
+        "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
+        "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net/cert:root_store_proto_full_gen
+genrule {
+    name: "cronet_aml_net_cert_root_store_proto_full_gen",
+    srcs: [
+        "net/cert/root_store.proto",
+    ],
+    cmd: "$(location tools/protoc_wrapper/protoc_wrapper.py) root_store.proto " +
+         "--protoc " +
+         "./clang_x64/protoc " +
+         "--proto-in-dir " +
+         "../../net/cert " +
+         "--cc-out-dir " +
+         "clang_x64/gen/net/cert/root_store_proto_full/ " +
+         "--py-out-dir " +
+         "clang_x64/pyproto/net/cert/root_store_proto_full/",
+    out: [
+        "//out/test/clang_x64/pyproto/net/cert/root_store_proto_full/root_store_pb2.py",
+        "net/cert/root_store_proto_full/root_store.pb.cc",
+        "net/cert/root_store_proto_full/root_store.pb.h",
+    ],
+    tool_files: [
+        "tools/protoc_wrapper/protoc_wrapper.py",
+    ],
+}
+
+// GN: //net:constants
+filegroup {
+    name: "cronet_aml_net_constants",
+}
+
+// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc
+genrule {
+    name: "cronet_aml_net_data_ssl_chrome_root_store_gen_root_store_inc",
+    cmd: "$(location build/gn_run_binary.py) clang_x64/root_store_tool " +
+         "--root-store " +
+         "../../net/data/ssl/chrome_root_store/root_store.textproto " +
+         "--certs " +
+         "../../net/data/ssl/chrome_root_store/root_store.certs " +
+         "--write-cpp-root-store " +
+         "gen/net/data/ssl/chrome_root_store/chrome-root-store-inc.cc " +
+         "--write-cpp-ev-roots " +
+         "gen/net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc",
+    out: [
+        "net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc",
+        "net/data/ssl/chrome_root_store/chrome-root-store-inc.cc",
+    ],
+    tool_files: [
+        "build/gn_run_binary.py",
+        "net/data/ssl/chrome_root_store/root_store.certs",
+        "net/data/ssl/chrome_root_store/root_store.textproto",
+    ],
+}
+
+// GN: //net/dns:dns
+filegroup {
+    name: "cronet_aml_net_dns_dns",
+    srcs: [
+        "net/dns/address_info.cc",
+        "net/dns/address_sorter_posix.cc",
+        "net/dns/context_host_resolver.cc",
+        "net/dns/dns_alias_utility.cc",
+        "net/dns/dns_client.cc",
+        "net/dns/dns_config.cc",
+        "net/dns/dns_config_service.cc",
+        "net/dns/dns_config_service_android.cc",
+        "net/dns/dns_hosts.cc",
+        "net/dns/dns_query.cc",
+        "net/dns/dns_reloader.cc",
+        "net/dns/dns_response.cc",
+        "net/dns/dns_response_result_extractor.cc",
+        "net/dns/dns_server_iterator.cc",
+        "net/dns/dns_session.cc",
+        "net/dns/dns_transaction.cc",
+        "net/dns/dns_udp_tracker.cc",
+        "net/dns/dns_util.cc",
+        "net/dns/host_cache.cc",
+        "net/dns/host_resolver.cc",
+        "net/dns/host_resolver_manager.cc",
+        "net/dns/host_resolver_mdns_listener_impl.cc",
+        "net/dns/host_resolver_mdns_task.cc",
+        "net/dns/host_resolver_nat64_task.cc",
+        "net/dns/host_resolver_proc.cc",
+        "net/dns/host_resolver_system_task.cc",
+        "net/dns/https_record_rdata.cc",
+        "net/dns/httpssvc_metrics.cc",
+        "net/dns/mapped_host_resolver.cc",
+        "net/dns/nsswitch_reader.cc",
+        "net/dns/opt_record_rdata.cc",
+        "net/dns/record_parsed.cc",
+        "net/dns/record_rdata.cc",
+        "net/dns/resolve_context.cc",
+        "net/dns/serial_worker.cc",
+        "net/dns/system_dns_config_change_notifier.cc",
+        "net/dns/test_dns_config_service.cc",
+    ],
+}
+
+// GN: //net/dns:dns_client
+filegroup {
+    name: "cronet_aml_net_dns_dns_client",
+}
+
+// GN: //net/dns:host_resolver
+filegroup {
+    name: "cronet_aml_net_dns_host_resolver",
+}
+
+// GN: //net/dns:host_resolver_manager
+filegroup {
+    name: "cronet_aml_net_dns_host_resolver_manager",
+}
+
+// GN: //net/dns:mdns_client
+filegroup {
+    name: "cronet_aml_net_dns_mdns_client",
+}
+
+// GN: //net/dns/public:public
+filegroup {
+    name: "cronet_aml_net_dns_public_public",
+    srcs: [
+        "net/dns/public/dns_config_overrides.cc",
+        "net/dns/public/dns_over_https_config.cc",
+        "net/dns/public/dns_over_https_server_config.cc",
+        "net/dns/public/dns_query_type.cc",
+        "net/dns/public/doh_provider_entry.cc",
+        "net/dns/public/host_resolver_results.cc",
+        "net/dns/public/resolve_error_info.cc",
+        "net/dns/public/util.cc",
+    ],
+}
+
+// GN: //net/http:transport_security_state_generated_files
+filegroup {
+    name: "cronet_aml_net_http_transport_security_state_generated_files",
+    srcs: [
+        "net/http/transport_security_state.cc",
+    ],
+}
+
+// GN: //net:ios_cronet_buildflags
+genrule {
+    name: "cronet_aml_net_ios_cronet_buildflags",
+    cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//net:ios_cronet_buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "net/socket/ios_cronet_buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //net:isolation_info_proto
+cc_library_static {
+    name: "cronet_aml_net_isolation_info_proto",
+    srcs: [
+        "out/test/gen/net/base/isolation_info.pb.cc",
+    ],
+    shared_libs: [
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_protobuf_protobuf_lite",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net:isolation_info_proto_gen
+genrule {
+    name: "cronet_aml_net_isolation_info_proto_gen",
+    srcs: [
+        "net/base/isolation_info.proto",
+    ],
+    cmd: "$(location tools/protoc_wrapper/protoc_wrapper.py) isolation_info.proto " +
+         "--protoc " +
+         "./clang_x64/protoc " +
+         "--proto-in-dir " +
+         "../../net/base " +
+         "--cc-out-dir " +
+         "gen/net/base " +
+         "--py-out-dir " +
+         "pyproto/net/base",
+    out: [
+        "//out/test/pyproto/net/base/isolation_info_pb2.py",
+        "net/base/isolation_info.pb.cc",
+        "net/base/isolation_info.pb.h",
+    ],
+    tool_files: [
+        "tools/protoc_wrapper/protoc_wrapper.py",
+    ],
+}
+
+// GN: //net:net
+cc_library_static {
+    name: "cronet_aml_net_net",
+    srcs: [
+        ":cronet_aml_net_constants",
+        ":cronet_aml_net_dns_dns",
+        ":cronet_aml_net_dns_dns_client",
+        ":cronet_aml_net_dns_host_resolver",
+        ":cronet_aml_net_dns_host_resolver_manager",
+        ":cronet_aml_net_dns_mdns_client",
+        ":cronet_aml_net_dns_public_public",
+        ":cronet_aml_net_http_transport_security_state_generated_files",
+        ":cronet_aml_net_net_deps",
+        ":cronet_aml_net_net_export_header",
+        ":cronet_aml_net_net_public_deps",
+        ":cronet_aml_net_net_resources",
+        ":cronet_aml_net_traffic_annotation_traffic_annotation",
+        "net/android/android_http_util.cc",
+        "net/android/cert_verify_result_android.cc",
+        "net/android/gurl_utils.cc",
+        "net/android/http_auth_negotiate_android.cc",
+        "net/android/keystore.cc",
+        "net/android/network_change_notifier_android.cc",
+        "net/android/network_change_notifier_delegate_android.cc",
+        "net/android/network_change_notifier_factory_android.cc",
+        "net/android/network_library.cc",
+        "net/android/radio_activity_tracker.cc",
+        "net/android/traffic_stats.cc",
+        "net/base/address_family.cc",
+        "net/base/address_list.cc",
+        "net/base/address_tracker_linux.cc",
+        "net/base/auth.cc",
+        "net/base/backoff_entry.cc",
+        "net/base/backoff_entry_serializer.cc",
+        "net/base/cache_metrics.cc",
+        "net/base/chunked_upload_data_stream.cc",
+        "net/base/connection_endpoint_metadata.cc",
+        "net/base/data_url.cc",
+        "net/base/datagram_buffer.cc",
+        "net/base/elements_upload_data_stream.cc",
+        "net/base/features.cc",
+        "net/base/file_stream.cc",
+        "net/base/file_stream_context.cc",
+        "net/base/file_stream_context_posix.cc",
+        "net/base/filename_util.cc",
+        "net/base/filename_util_internal.cc",
+        "net/base/hash_value.cc",
+        "net/base/hex_utils.cc",
+        "net/base/host_mapping_rules.cc",
+        "net/base/host_port_pair.cc",
+        "net/base/io_buffer.cc",
+        "net/base/ip_address.cc",
+        "net/base/ip_endpoint.cc",
+        "net/base/isolation_info.cc",
+        "net/base/load_timing_info.cc",
+        "net/base/logging_network_change_observer.cc",
+        "net/base/lookup_string_in_fixed_set.cc",
+        "net/base/mime_sniffer.cc",
+        "net/base/mime_util.cc",
+        "net/base/net_errors.cc",
+        "net/base/net_errors_posix.cc",
+        "net/base/net_module.cc",
+        "net/base/net_string_util_icu_alternatives_android.cc",
+        "net/base/network_activity_monitor.cc",
+        "net/base/network_anonymization_key.cc",
+        "net/base/network_change_notifier.cc",
+        "net/base/network_change_notifier_posix.cc",
+        "net/base/network_delegate.cc",
+        "net/base/network_delegate_impl.cc",
+        "net/base/network_interfaces.cc",
+        "net/base/network_interfaces_getifaddrs.cc",
+        "net/base/network_interfaces_getifaddrs_android.cc",
+        "net/base/network_interfaces_linux.cc",
+        "net/base/network_interfaces_posix.cc",
+        "net/base/network_isolation_key.cc",
+        "net/base/parse_number.cc",
+        "net/base/platform_mime_util_linux.cc",
+        "net/base/port_util.cc",
+        "net/base/prioritized_dispatcher.cc",
+        "net/base/prioritized_task_runner.cc",
+        "net/base/privacy_mode.cc",
+        "net/base/proxy_server.cc",
+        "net/base/proxy_string_util.cc",
+        "net/base/registry_controlled_domains/registry_controlled_domain.cc",
+        "net/base/request_priority.cc",
+        "net/base/scheme_host_port_matcher.cc",
+        "net/base/scheme_host_port_matcher_rule.cc",
+        "net/base/schemeful_site.cc",
+        "net/base/sockaddr_storage.cc",
+        "net/base/sockaddr_util_posix.cc",
+        "net/base/transport_info.cc",
+        "net/base/upload_bytes_element_reader.cc",
+        "net/base/upload_data_stream.cc",
+        "net/base/upload_element_reader.cc",
+        "net/base/upload_file_element_reader.cc",
+        "net/base/url_util.cc",
+        "net/cert/asn1_util.cc",
+        "net/cert/caching_cert_verifier.cc",
+        "net/cert/cert_and_ct_verifier.cc",
+        "net/cert/cert_database.cc",
+        "net/cert/cert_status_flags.cc",
+        "net/cert/cert_verifier.cc",
+        "net/cert/cert_verify_proc.cc",
+        "net/cert/cert_verify_proc_android.cc",
+        "net/cert/cert_verify_proc_builtin.cc",
+        "net/cert/cert_verify_result.cc",
+        "net/cert/coalescing_cert_verifier.cc",
+        "net/cert/crl_set.cc",
+        "net/cert/ct_log_response_parser.cc",
+        "net/cert/ct_log_verifier.cc",
+        "net/cert/ct_log_verifier_util.cc",
+        "net/cert/ct_objects_extractor.cc",
+        "net/cert/ct_policy_enforcer.cc",
+        "net/cert/ct_sct_to_string.cc",
+        "net/cert/ct_serialization.cc",
+        "net/cert/ct_signed_certificate_timestamp_log_param.cc",
+        "net/cert/do_nothing_ct_verifier.cc",
+        "net/cert/ev_root_ca_metadata.cc",
+        "net/cert/internal/cert_issuer_source_aia.cc",
+        "net/cert/internal/revocation_checker.cc",
+        "net/cert/internal/system_trust_store.cc",
+        "net/cert/known_roots.cc",
+        "net/cert/merkle_audit_proof.cc",
+        "net/cert/merkle_consistency_proof.cc",
+        "net/cert/merkle_tree_leaf.cc",
+        "net/cert/multi_log_ct_verifier.cc",
+        "net/cert/multi_threaded_cert_verifier.cc",
+        "net/cert/ocsp_verify_result.cc",
+        "net/cert/pem.cc",
+        "net/cert/pki/cert_error_id.cc",
+        "net/cert/pki/cert_error_params.cc",
+        "net/cert/pki/cert_errors.cc",
+        "net/cert/pki/cert_issuer_source_static.cc",
+        "net/cert/pki/certificate_policies.cc",
+        "net/cert/pki/common_cert_errors.cc",
+        "net/cert/pki/crl.cc",
+        "net/cert/pki/extended_key_usage.cc",
+        "net/cert/pki/general_names.cc",
+        "net/cert/pki/name_constraints.cc",
+        "net/cert/pki/ocsp.cc",
+        "net/cert/pki/parse_certificate.cc",
+        "net/cert/pki/parse_name.cc",
+        "net/cert/pki/parsed_certificate.cc",
+        "net/cert/pki/path_builder.cc",
+        "net/cert/pki/revocation_util.cc",
+        "net/cert/pki/signature_algorithm.cc",
+        "net/cert/pki/simple_path_builder_delegate.cc",
+        "net/cert/pki/string_util.cc",
+        "net/cert/pki/trust_store.cc",
+        "net/cert/pki/trust_store_collection.cc",
+        "net/cert/pki/trust_store_in_memory.cc",
+        "net/cert/pki/verify_certificate_chain.cc",
+        "net/cert/pki/verify_name_match.cc",
+        "net/cert/pki/verify_signed_data.cc",
+        "net/cert/sct_status_flags.cc",
+        "net/cert/signed_certificate_timestamp.cc",
+        "net/cert/signed_certificate_timestamp_and_status.cc",
+        "net/cert/signed_tree_head.cc",
+        "net/cert/symantec_certs.cc",
+        "net/cert/test_root_certs.cc",
+        "net/cert/test_root_certs_android.cc",
+        "net/cert/trial_comparison_cert_verifier_util.cc",
+        "net/cert/x509_cert_types.cc",
+        "net/cert/x509_certificate.cc",
+        "net/cert/x509_certificate_net_log_param.cc",
+        "net/cert/x509_util.cc",
+        "net/cert/x509_util_android.cc",
+        "net/cert_net/cert_net_fetcher_url_request.cc",
+        "net/cookies/canonical_cookie.cc",
+        "net/cookies/cookie_access_delegate.cc",
+        "net/cookies/cookie_access_result.cc",
+        "net/cookies/cookie_change_dispatcher.cc",
+        "net/cookies/cookie_constants.cc",
+        "net/cookies/cookie_deletion_info.cc",
+        "net/cookies/cookie_inclusion_status.cc",
+        "net/cookies/cookie_monster.cc",
+        "net/cookies/cookie_monster_change_dispatcher.cc",
+        "net/cookies/cookie_monster_netlog_params.cc",
+        "net/cookies/cookie_options.cc",
+        "net/cookies/cookie_partition_key.cc",
+        "net/cookies/cookie_partition_key_collection.cc",
+        "net/cookies/cookie_store.cc",
+        "net/cookies/cookie_util.cc",
+        "net/cookies/parsed_cookie.cc",
+        "net/cookies/site_for_cookies.cc",
+        "net/cookies/static_cookie_policy.cc",
+        "net/der/encode_values.cc",
+        "net/der/input.cc",
+        "net/der/parse_values.cc",
+        "net/der/parser.cc",
+        "net/der/tag.cc",
+        "net/disk_cache/backend_cleanup_tracker.cc",
+        "net/disk_cache/blockfile/addr.cc",
+        "net/disk_cache/blockfile/backend_impl.cc",
+        "net/disk_cache/blockfile/bitmap.cc",
+        "net/disk_cache/blockfile/block_files.cc",
+        "net/disk_cache/blockfile/disk_format.cc",
+        "net/disk_cache/blockfile/entry_impl.cc",
+        "net/disk_cache/blockfile/eviction.cc",
+        "net/disk_cache/blockfile/file.cc",
+        "net/disk_cache/blockfile/file_lock.cc",
+        "net/disk_cache/blockfile/file_posix.cc",
+        "net/disk_cache/blockfile/in_flight_backend_io.cc",
+        "net/disk_cache/blockfile/in_flight_io.cc",
+        "net/disk_cache/blockfile/mapped_file.cc",
+        "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
+        "net/disk_cache/blockfile/rankings.cc",
+        "net/disk_cache/blockfile/sparse_control.cc",
+        "net/disk_cache/blockfile/stats.cc",
+        "net/disk_cache/cache_util.cc",
+        "net/disk_cache/cache_util_posix.cc",
+        "net/disk_cache/disk_cache.cc",
+        "net/disk_cache/memory/mem_backend_impl.cc",
+        "net/disk_cache/memory/mem_entry_impl.cc",
+        "net/disk_cache/net_log_parameters.cc",
+        "net/disk_cache/simple/post_doom_waiter.cc",
+        "net/disk_cache/simple/simple_backend_impl.cc",
+        "net/disk_cache/simple/simple_entry_format.cc",
+        "net/disk_cache/simple/simple_entry_impl.cc",
+        "net/disk_cache/simple/simple_entry_operation.cc",
+        "net/disk_cache/simple/simple_file_enumerator.cc",
+        "net/disk_cache/simple/simple_file_tracker.cc",
+        "net/disk_cache/simple/simple_index.cc",
+        "net/disk_cache/simple/simple_index_file.cc",
+        "net/disk_cache/simple/simple_net_log_parameters.cc",
+        "net/disk_cache/simple/simple_synchronous_entry.cc",
+        "net/disk_cache/simple/simple_util.cc",
+        "net/disk_cache/simple/simple_util_posix.cc",
+        "net/disk_cache/simple/simple_version_upgrade.cc",
+        "net/filter/brotli_source_stream.cc",
+        "net/filter/filter_source_stream.cc",
+        "net/filter/gzip_header.cc",
+        "net/filter/gzip_source_stream.cc",
+        "net/filter/source_stream.cc",
+        "net/first_party_sets/addition_overlaps_union_find.cc",
+        "net/first_party_sets/first_party_set_entry.cc",
+        "net/first_party_sets/first_party_set_metadata.cc",
+        "net/first_party_sets/first_party_sets_cache_filter.cc",
+        "net/first_party_sets/first_party_sets_context_config.cc",
+        "net/first_party_sets/global_first_party_sets.cc",
+        "net/first_party_sets/same_party_context.cc",
+        "net/http/alternative_service.cc",
+        "net/http/bidirectional_stream.cc",
+        "net/http/bidirectional_stream_impl.cc",
+        "net/http/bidirectional_stream_request_info.cc",
+        "net/http/broken_alternative_services.cc",
+        "net/http/http_auth.cc",
+        "net/http/http_auth_cache.cc",
+        "net/http/http_auth_challenge_tokenizer.cc",
+        "net/http/http_auth_controller.cc",
+        "net/http/http_auth_filter.cc",
+        "net/http/http_auth_handler.cc",
+        "net/http/http_auth_handler_basic.cc",
+        "net/http/http_auth_handler_digest.cc",
+        "net/http/http_auth_handler_factory.cc",
+        "net/http/http_auth_handler_negotiate.cc",
+        "net/http/http_auth_handler_ntlm.cc",
+        "net/http/http_auth_handler_ntlm_portable.cc",
+        "net/http/http_auth_multi_round_parse.cc",
+        "net/http/http_auth_ntlm_mechanism.cc",
+        "net/http/http_auth_preferences.cc",
+        "net/http/http_auth_scheme.cc",
+        "net/http/http_basic_state.cc",
+        "net/http/http_basic_stream.cc",
+        "net/http/http_byte_range.cc",
+        "net/http/http_cache.cc",
+        "net/http/http_cache_lookup_manager.cc",
+        "net/http/http_cache_transaction.cc",
+        "net/http/http_cache_writers.cc",
+        "net/http/http_chunked_decoder.cc",
+        "net/http/http_content_disposition.cc",
+        "net/http/http_log_util.cc",
+        "net/http/http_network_layer.cc",
+        "net/http/http_network_session.cc",
+        "net/http/http_network_session_peer.cc",
+        "net/http/http_network_transaction.cc",
+        "net/http/http_proxy_client_socket.cc",
+        "net/http/http_proxy_connect_job.cc",
+        "net/http/http_raw_request_headers.cc",
+        "net/http/http_request_headers.cc",
+        "net/http/http_request_info.cc",
+        "net/http/http_response_body_drainer.cc",
+        "net/http/http_response_headers.cc",
+        "net/http/http_response_info.cc",
+        "net/http/http_security_headers.cc",
+        "net/http/http_server_properties.cc",
+        "net/http/http_server_properties_manager.cc",
+        "net/http/http_status_code.cc",
+        "net/http/http_stream_factory.cc",
+        "net/http/http_stream_factory_job.cc",
+        "net/http/http_stream_factory_job_controller.cc",
+        "net/http/http_stream_parser.cc",
+        "net/http/http_stream_request.cc",
+        "net/http/http_util.cc",
+        "net/http/http_vary_data.cc",
+        "net/http/partial_data.cc",
+        "net/http/proxy_client_socket.cc",
+        "net/http/proxy_fallback.cc",
+        "net/http/transport_security_persister.cc",
+        "net/http/transport_security_state_source.cc",
+        "net/http/url_security_manager.cc",
+        "net/http/url_security_manager_posix.cc",
+        "net/http/webfonts_histogram.cc",
+        "net/log/file_net_log_observer.cc",
+        "net/log/net_log.cc",
+        "net/log/net_log_capture_mode.cc",
+        "net/log/net_log_entry.cc",
+        "net/log/net_log_event_type.cc",
+        "net/log/net_log_source.cc",
+        "net/log/net_log_util.cc",
+        "net/log/net_log_values.cc",
+        "net/log/net_log_with_source.cc",
+        "net/log/trace_net_log_observer.cc",
+        "net/network_error_logging/network_error_logging_service.cc",
+        "net/nqe/cached_network_quality.cc",
+        "net/nqe/effective_connection_type.cc",
+        "net/nqe/event_creator.cc",
+        "net/nqe/network_id.cc",
+        "net/nqe/network_qualities_prefs_manager.cc",
+        "net/nqe/network_quality.cc",
+        "net/nqe/network_quality_estimator.cc",
+        "net/nqe/network_quality_estimator_params.cc",
+        "net/nqe/network_quality_estimator_util.cc",
+        "net/nqe/network_quality_observation.cc",
+        "net/nqe/network_quality_store.cc",
+        "net/nqe/observation_buffer.cc",
+        "net/nqe/pref_names.cc",
+        "net/nqe/socket_watcher.cc",
+        "net/nqe/socket_watcher_factory.cc",
+        "net/nqe/throughput_analyzer.cc",
+        "net/ntlm/ntlm.cc",
+        "net/ntlm/ntlm_buffer_reader.cc",
+        "net/ntlm/ntlm_buffer_writer.cc",
+        "net/ntlm/ntlm_client.cc",
+        "net/ntlm/ntlm_constants.cc",
+        "net/proxy_resolution/configured_proxy_resolution_request.cc",
+        "net/proxy_resolution/configured_proxy_resolution_service.cc",
+        "net/proxy_resolution/dhcp_pac_file_fetcher.cc",
+        "net/proxy_resolution/multi_threaded_proxy_resolver.cc",
+        "net/proxy_resolution/network_delegate_error_observer.cc",
+        "net/proxy_resolution/pac_file_data.cc",
+        "net/proxy_resolution/pac_file_decider.cc",
+        "net/proxy_resolution/pac_file_fetcher.cc",
+        "net/proxy_resolution/pac_file_fetcher_impl.cc",
+        "net/proxy_resolution/polling_proxy_config_service.cc",
+        "net/proxy_resolution/proxy_bypass_rules.cc",
+        "net/proxy_resolution/proxy_config.cc",
+        "net/proxy_resolution/proxy_config_service.cc",
+        "net/proxy_resolution/proxy_config_service_android.cc",
+        "net/proxy_resolution/proxy_config_service_fixed.cc",
+        "net/proxy_resolution/proxy_config_with_annotation.cc",
+        "net/proxy_resolution/proxy_info.cc",
+        "net/proxy_resolution/proxy_list.cc",
+        "net/proxy_resolution/proxy_resolver_factory.cc",
+        "net/quic/bidirectional_stream_quic_impl.cc",
+        "net/quic/crypto/proof_source_chromium.cc",
+        "net/quic/crypto/proof_verifier_chromium.cc",
+        "net/quic/dedicated_web_transport_http3_client.cc",
+        "net/quic/network_connection.cc",
+        "net/quic/platform/impl/quic_chromium_clock.cc",
+        "net/quic/properties_based_quic_server_info.cc",
+        "net/quic/quic_address_mismatch.cc",
+        "net/quic/quic_chromium_alarm_factory.cc",
+        "net/quic/quic_chromium_client_session.cc",
+        "net/quic/quic_chromium_client_stream.cc",
+        "net/quic/quic_chromium_connection_helper.cc",
+        "net/quic/quic_chromium_packet_reader.cc",
+        "net/quic/quic_chromium_packet_writer.cc",
+        "net/quic/quic_clock_skew_detector.cc",
+        "net/quic/quic_connection_logger.cc",
+        "net/quic/quic_connectivity_monitor.cc",
+        "net/quic/quic_context.cc",
+        "net/quic/quic_crypto_client_config_handle.cc",
+        "net/quic/quic_crypto_client_stream_factory.cc",
+        "net/quic/quic_event_logger.cc",
+        "net/quic/quic_http3_logger.cc",
+        "net/quic/quic_http_stream.cc",
+        "net/quic/quic_http_utils.cc",
+        "net/quic/quic_proxy_client_socket.cc",
+        "net/quic/quic_server_info.cc",
+        "net/quic/quic_session_key.cc",
+        "net/quic/quic_stream_factory.cc",
+        "net/quic/set_quic_flag.cc",
+        "net/quic/web_transport_client.cc",
+        "net/quic/web_transport_error.cc",
+        "net/reporting/reporting_browsing_data_remover.cc",
+        "net/reporting/reporting_cache.cc",
+        "net/reporting/reporting_cache_impl.cc",
+        "net/reporting/reporting_cache_observer.cc",
+        "net/reporting/reporting_context.cc",
+        "net/reporting/reporting_delegate.cc",
+        "net/reporting/reporting_delivery_agent.cc",
+        "net/reporting/reporting_endpoint.cc",
+        "net/reporting/reporting_endpoint_manager.cc",
+        "net/reporting/reporting_garbage_collector.cc",
+        "net/reporting/reporting_header_parser.cc",
+        "net/reporting/reporting_network_change_observer.cc",
+        "net/reporting/reporting_policy.cc",
+        "net/reporting/reporting_report.cc",
+        "net/reporting/reporting_service.cc",
+        "net/reporting/reporting_uploader.cc",
+        "net/socket/client_socket_factory.cc",
+        "net/socket/client_socket_handle.cc",
+        "net/socket/client_socket_pool.cc",
+        "net/socket/client_socket_pool_manager.cc",
+        "net/socket/client_socket_pool_manager_impl.cc",
+        "net/socket/connect_job.cc",
+        "net/socket/connect_job_factory.cc",
+        "net/socket/network_binding_client_socket_factory.cc",
+        "net/socket/next_proto.cc",
+        "net/socket/server_socket.cc",
+        "net/socket/socket.cc",
+        "net/socket/socket_bio_adapter.cc",
+        "net/socket/socket_descriptor.cc",
+        "net/socket/socket_net_log_params.cc",
+        "net/socket/socket_options.cc",
+        "net/socket/socket_posix.cc",
+        "net/socket/socket_tag.cc",
+        "net/socket/socks5_client_socket.cc",
+        "net/socket/socks_client_socket.cc",
+        "net/socket/socks_connect_job.cc",
+        "net/socket/ssl_client_socket.cc",
+        "net/socket/ssl_client_socket_impl.cc",
+        "net/socket/ssl_connect_job.cc",
+        "net/socket/ssl_server_socket_impl.cc",
+        "net/socket/stream_socket.cc",
+        "net/socket/tcp_client_socket.cc",
+        "net/socket/tcp_server_socket.cc",
+        "net/socket/tcp_socket_posix.cc",
+        "net/socket/transport_client_socket.cc",
+        "net/socket/transport_client_socket_pool.cc",
+        "net/socket/transport_connect_job.cc",
+        "net/socket/transport_connect_sub_job.cc",
+        "net/socket/udp_client_socket.cc",
+        "net/socket/udp_net_log_parameters.cc",
+        "net/socket/udp_server_socket.cc",
+        "net/socket/udp_socket_global_limits.cc",
+        "net/socket/udp_socket_posix.cc",
+        "net/socket/unix_domain_client_socket_posix.cc",
+        "net/socket/unix_domain_server_socket_posix.cc",
+        "net/socket/websocket_endpoint_lock_manager.cc",
+        "net/socket/websocket_transport_client_socket_pool.cc",
+        "net/spdy/alps_decoder.cc",
+        "net/spdy/bidirectional_stream_spdy_impl.cc",
+        "net/spdy/buffered_spdy_framer.cc",
+        "net/spdy/header_coalescer.cc",
+        "net/spdy/http2_priority_dependencies.cc",
+        "net/spdy/http2_push_promise_index.cc",
+        "net/spdy/multiplexed_http_stream.cc",
+        "net/spdy/multiplexed_session.cc",
+        "net/spdy/spdy_buffer.cc",
+        "net/spdy/spdy_buffer_producer.cc",
+        "net/spdy/spdy_http_stream.cc",
+        "net/spdy/spdy_http_utils.cc",
+        "net/spdy/spdy_log_util.cc",
+        "net/spdy/spdy_proxy_client_socket.cc",
+        "net/spdy/spdy_read_queue.cc",
+        "net/spdy/spdy_session.cc",
+        "net/spdy/spdy_session_key.cc",
+        "net/spdy/spdy_session_pool.cc",
+        "net/spdy/spdy_stream.cc",
+        "net/spdy/spdy_write_queue.cc",
+        "net/ssl/cert_compression.cc",
+        "net/ssl/client_cert_identity.cc",
+        "net/ssl/openssl_ssl_util.cc",
+        "net/ssl/ssl_cert_request_info.cc",
+        "net/ssl/ssl_cipher_suite_names.cc",
+        "net/ssl/ssl_client_auth_cache.cc",
+        "net/ssl/ssl_client_session_cache.cc",
+        "net/ssl/ssl_config.cc",
+        "net/ssl/ssl_config_service.cc",
+        "net/ssl/ssl_config_service_defaults.cc",
+        "net/ssl/ssl_info.cc",
+        "net/ssl/ssl_key_logger.cc",
+        "net/ssl/ssl_key_logger_impl.cc",
+        "net/ssl/ssl_platform_key_android.cc",
+        "net/ssl/ssl_platform_key_util.cc",
+        "net/ssl/ssl_private_key.cc",
+        "net/ssl/ssl_server_config.cc",
+        "net/ssl/threaded_ssl_private_key.cc",
+        "net/url_request/redirect_info.cc",
+        "net/url_request/redirect_util.cc",
+        "net/url_request/report_sender.cc",
+        "net/url_request/static_http_user_agent_settings.cc",
+        "net/url_request/url_request.cc",
+        "net/url_request/url_request_context.cc",
+        "net/url_request/url_request_context_builder.cc",
+        "net/url_request/url_request_context_getter.cc",
+        "net/url_request/url_request_error_job.cc",
+        "net/url_request/url_request_filter.cc",
+        "net/url_request/url_request_http_job.cc",
+        "net/url_request/url_request_interceptor.cc",
+        "net/url_request/url_request_job.cc",
+        "net/url_request/url_request_job_factory.cc",
+        "net/url_request/url_request_netlog_params.cc",
+        "net/url_request/url_request_redirect_job.cc",
+        "net/url_request/url_request_throttler_entry.cc",
+        "net/url_request/url_request_throttler_manager.cc",
+        "net/url_request/view_cache_helper.cc",
+        "net/url_request/websocket_handshake_userdata_key.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+        "cronet_aml_crypto_crypto",
+        "cronet_aml_net_isolation_info_proto",
+        "cronet_aml_net_net_nqe_proto",
+        "cronet_aml_net_preload_decoder",
+        "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto",
+        "cronet_aml_net_third_party_quiche_quiche",
+        "cronet_aml_net_uri_template",
+        "cronet_aml_third_party_boringssl_boringssl",
+        "cronet_aml_third_party_brotli_dec",
+        "cronet_aml_third_party_protobuf_protobuf_lite",
+        "cronet_aml_third_party_zlib_zlib",
+        "cronet_aml_url_url",
+    ],
+    generated_headers: [
+        "cronet_aml_base_debugging_buildflags",
+        "cronet_aml_base_logging_buildflags",
+        "cronet_aml_build_branding_buildflags",
+        "cronet_aml_build_chromeos_buildflags",
+        "cronet_aml_net_buildflags",
+        "cronet_aml_net_ios_cronet_buildflags",
+        "cronet_aml_net_net_jni_headers",
+        "cronet_aml_tools_grit_grit_sources",
+        "cronet_aml_tools_gritsettings_default_resource_ids",
+        "cronet_aml_url_buildflags",
+    ],
+    export_generated_headers: [
+        "cronet_aml_base_debugging_buildflags",
+        "cronet_aml_base_logging_buildflags",
+        "cronet_aml_build_branding_buildflags",
+        "cronet_aml_build_chromeos_buildflags",
+        "cronet_aml_net_buildflags",
+        "cronet_aml_net_ios_cronet_buildflags",
+        "cronet_aml_net_net_jni_headers",
+        "cronet_aml_tools_grit_grit_sources",
+        "cronet_aml_tools_gritsettings_default_resource_ids",
+        "cronet_aml_url_buildflags",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DENABLE_BUILT_IN_DNS",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_SYS_UIO_H",
+        "-DNET_IMPLEMENTATION",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "net/third_party/quiche/overrides/",
+        "net/third_party/quiche/src/",
+        "net/third_party/quiche/src/quiche/common/platform/default/",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/brotli/include/",
+        "third_party/protobuf/src/",
+        "third_party/zlib/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    header_libs: [
+        "jni_headers",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net:net_deps
+filegroup {
+    name: "cronet_aml_net_net_deps",
+}
+
+// GN: //net:net_export_header
+filegroup {
+    name: "cronet_aml_net_net_export_header",
+}
+
+// GN: //net:net_jni_headers
+genrule {
+    name: "cronet_aml_net_net_jni_headers",
+    srcs: [
+        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
+        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
+        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
+        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
+        "net/android/java/src/org/chromium/net/DnsStatus.java",
+        "net/android/java/src/org/chromium/net/GURLUtils.java",
+        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
+        "net/android/java/src/org/chromium/net/HttpUtil.java",
+        "net/android/java/src/org/chromium/net/NetStringUtil.java",
+        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
+        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
+        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
+        "net/android/java/src/org/chromium/net/X509Util.java",
+    ],
+    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+         "long " +
+         " " +
+         " " +
+         "--output_dir " +
+         "$(genDir)/net/net_jni_headers " +
+         "--includes " +
+         "base/android/jni_generator/jni_generator_helper.h " +
+         "--use_proxy_hash " +
+         "--output_name " +
+         "AndroidCertVerifyResult_jni.h " +
+         "--output_name " +
+         "AndroidKeyStore_jni.h " +
+         "--output_name " +
+         "AndroidNetworkLibrary_jni.h " +
+         "--output_name " +
+         "AndroidTrafficStats_jni.h " +
+         "--output_name " +
+         "DnsStatus_jni.h " +
+         "--output_name " +
+         "GURLUtils_jni.h " +
+         "--output_name " +
+         "HttpNegotiateAuthenticator_jni.h " +
+         "--output_name " +
+         "HttpUtil_jni.h " +
+         "--output_name " +
+         "NetStringUtil_jni.h " +
+         "--output_name " +
+         "NetworkActiveNotifier_jni.h " +
+         "--output_name " +
+         "NetworkChangeNotifier_jni.h " +
+         "--output_name " +
+         "ProxyChangeListener_jni.h " +
+         "--output_name " +
+         "X509Util_jni.h " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/AndroidKeyStore.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/AndroidTrafficStats.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/DnsStatus.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/GURLUtils.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/HttpUtil.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/NetStringUtil.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/NetworkActiveNotifier.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/NetworkChangeNotifier.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/ProxyChangeListener.java) " +
+         "--input_file " +
+         "$(location net/android/java/src/org/chromium/net/X509Util.java)",
+    out: [
+        "net/net_jni_headers/AndroidCertVerifyResult_jni.h",
+        "net/net_jni_headers/AndroidKeyStore_jni.h",
+        "net/net_jni_headers/AndroidNetworkLibrary_jni.h",
+        "net/net_jni_headers/AndroidTrafficStats_jni.h",
+        "net/net_jni_headers/DnsStatus_jni.h",
+        "net/net_jni_headers/GURLUtils_jni.h",
+        "net/net_jni_headers/HttpNegotiateAuthenticator_jni.h",
+        "net/net_jni_headers/HttpUtil_jni.h",
+        "net/net_jni_headers/NetStringUtil_jni.h",
+        "net/net_jni_headers/NetworkActiveNotifier_jni.h",
+        "net/net_jni_headers/NetworkChangeNotifier_jni.h",
+        "net/net_jni_headers/ProxyChangeListener_jni.h",
+        "net/net_jni_headers/X509Util_jni.h",
+    ],
+    tool_files: [
+        "base/android/jni_generator/jni_generator.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+    ],
+}
+
+// GN: //net:net_nqe_proto
+cc_library_static {
+    name: "cronet_aml_net_net_nqe_proto",
+    srcs: [
+        ":cronet_aml_net_net_export_header",
+        "out/test/gen/net/nqe/proto/network_id_proto.pb.cc",
+    ],
+    shared_libs: [
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_protobuf_protobuf_lite",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_SYS_UIO_H",
+        "-DNET_IMPLEMENTATION",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net:net_nqe_proto_gen
+genrule {
+    name: "cronet_aml_net_net_nqe_proto_gen",
+    srcs: [
+        "net/nqe/proto/network_id_proto.proto",
+    ],
+    cmd: "$(location tools/protoc_wrapper/protoc_wrapper.py) network_id_proto.proto " +
+         "--protoc " +
+         "./clang_x64/protoc " +
+         "--proto-in-dir " +
+         "../../net/nqe/proto " +
+         "--cc-out-dir " +
+         "gen/net/nqe/proto " +
+         "--cc-options " +
+         "dllexport_decl " +
+         "NET_EXPORT_PRIVATE: " +
+         "--include " +
+         "net/base/net_export.h " +
+         "--py-out-dir " +
+         "pyproto/net/nqe/proto",
+    out: [
+        "//out/test/pyproto/net/nqe/proto/network_id_proto_pb2.py",
+        "net/nqe/proto/network_id_proto.pb.cc",
+        "net/nqe/proto/network_id_proto.pb.h",
+    ],
+    tool_files: [
+        "tools/protoc_wrapper/protoc_wrapper.py",
+    ],
+}
+
+// GN: //net:net_public_deps
+filegroup {
+    name: "cronet_aml_net_net_public_deps",
+}
+
+// GN: //net:net_resources
+filegroup {
+    name: "cronet_aml_net_net_resources",
+}
+
+// GN: //net:net_resources_grit
+genrule {
+    name: "cronet_aml_net_net_resources_grit",
+    cmd: "$(location tools/grit/grit.py) -i " +
+         "../../net/base/net_resources.grd " +
+         "build " +
+         "-o " +
+         "gen/net " +
+         "--depdir " +
+         ". " +
+         "--depfile " +
+         "gen/net/net_resources_grit.d " +
+         "--write-only-new " +
+         "1 " +
+         "--depend-on-stamp " +
+         "-D " +
+         "DEVTOOLS_GRD_PATH " +
+         "gen/third_party/devtools-frontend/src/front_end/devtools_resources " +
+         "-D " +
+         "SHARED_INTERMEDIATE_DIR " +
+         "gen " +
+         "-D " +
+         "_google_chrome " +
+         "false " +
+         "-D " +
+         "_google_chrome_for_testing " +
+         "false " +
+         "-D " +
+         "chromeos_ash " +
+         "false " +
+         "-D " +
+         "chromeos_lacros " +
+         "false " +
+         "-D " +
+         "reven " +
+         "false " +
+         "-D " +
+         "toolkit_views " +
+         "false " +
+         "-D " +
+         "use_aura " +
+         "false " +
+         "-D " +
+         "use_ozone " +
+         "false " +
+         "-D " +
+         "use_titlecase " +
+         "false " +
+         "-E " +
+         "root_gen_dir " +
+         "gen " +
+         "-E " +
+         "root_src_dir " +
+         "../../ " +
+         "-E " +
+         "CHROMIUM_BUILD " +
+         "chromium " +
+         "-E " +
+         "ANDROID_JAVA_TAGGED_ONLY " +
+         "true " +
+         "-t " +
+         "android " +
+         "-f " +
+         "gen/tools/gritsettings/default_resource_ids " +
+         "--assert-file-list " +
+         "obj/net/net_resources_expected_outputs.txt",
+    out: [
+        "net/grit/net_resources.h",
+        "net/net_resources.pak",
+        "net/net_resources.pak.info",
+        "net/net_resources_grit.d.stamp",
+    ],
+    tool_files: [
+        "net/base/net_resources.grd",
+        "out/test/gen/tools/gritsettings/default_resource_ids",
+        "out/test/obj/net/net_resources_expected_outputs.txt",
+        "tools/grit/grit.py",
+    ],
+}
+
+// GN: //net:preload_decoder
+cc_library_static {
+    name: "cronet_aml_net_preload_decoder",
+    srcs: [
+        "net/extras/preload_data/decoder.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net/third_party/quiche:net_quic_proto
+cc_library_static {
+    name: "cronet_aml_net_third_party_quiche_net_quic_proto",
+    srcs: [
+        "out/test/gen/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.cc",
+        "out/test/gen/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
+        "out/test/gen/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+        "cronet_aml_third_party_protobuf_protobuf_lite",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_SYS_UIO_H",
+        "-DIS_QUICHE_IMPL",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/protobuf/src/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net/third_party/quiche:net_quic_proto_gen
+genrule {
+    name: "cronet_aml_net_third_party_quiche_net_quic_proto_gen",
+    srcs: [
+        "net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.proto",
+        "net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.proto",
+        "net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.proto",
+    ],
+    cmd: "$(location tools/protoc_wrapper/protoc_wrapper.py) quiche/quic/core/proto/cached_network_parameters.proto " +
+         "quiche/quic/core/proto/crypto_server_config.proto " +
+         "quiche/quic/core/proto/source_address_token.proto " +
+         "--protoc " +
+         "./clang_x64/protoc " +
+         "--proto-in-dir " +
+         "../../net/third_party/quiche/src " +
+         "--cc-out-dir " +
+         "gen/net/third_party/quiche/src " +
+         "--cc-options " +
+         "dllexport_decl " +
+         "COMPONENT_EXPORT(QUICHE): " +
+         "--include " +
+         "base/component_export.h " +
+         "--py-out-dir " +
+         "pyproto/net/third_party/quiche/src",
+    out: [
+        "//out/test/pyproto/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters_pb2.py",
+        "//out/test/pyproto/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config_pb2.py",
+        "//out/test/pyproto/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token_pb2.py",
+        "net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.cc",
+        "net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.h",
+        "net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
+        "net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.h",
+        "net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.cc",
+        "net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.h",
+    ],
+    tool_files: [
+        "tools/protoc_wrapper/protoc_wrapper.py",
+    ],
+}
+
+// GN: //net/third_party/quiche:net_quic_test_tools_proto
+cc_library_static {
+    name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto",
+    srcs: [
+        ":cronet_aml_net_net_export_header",
+        "out/test/gen/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
+    ],
+    shared_libs: [
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_protobuf_protobuf_lite",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_SYS_UIO_H",
+        "-DNET_IMPLEMENTATION",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net/third_party/quiche:net_quic_test_tools_proto_gen
+genrule {
+    name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen",
+    srcs: [
+        "net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.proto",
+    ],
+    cmd: "$(location tools/protoc_wrapper/protoc_wrapper.py) send_algorithm_test_result.proto " +
+         "--protoc " +
+         "./clang_x64/protoc " +
+         "--proto-in-dir " +
+         "../../net/third_party/quiche/src/quiche/quic/test_tools " +
+         "--cc-out-dir " +
+         "gen/net/third_party/quiche/src/quiche/quic/test_tools " +
+         "--cc-options " +
+         "dllexport_decl " +
+         "NET_EXPORT_PRIVATE: " +
+         "--include " +
+         "net/base/net_export.h " +
+         "--py-out-dir " +
+         "pyproto/net/third_party/quiche/src/quiche/quic/test_tools",
+    out: [
+        "//out/test/pyproto/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result_pb2.py",
+        "net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
+        "net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.h",
+    ],
+    tool_files: [
+        "tools/protoc_wrapper/protoc_wrapper.py",
+    ],
+}
+
+// GN: //net/third_party/quiche:quiche
+cc_library_static {
+    name: "cronet_aml_net_third_party_quiche_quiche",
+    srcs: [
+        ":cronet_aml_third_party_abseil_cpp_absl",
+        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
+        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_base",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_config",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_endian",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_strerror",
+        ":cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
+        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
+        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_btree",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_common",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_layout",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
+        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
+        ":cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
+        ":cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
+        ":cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
+        ":cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
+        ":cronet_aml_third_party_abseil_cpp_absl_hash_city",
+        ":cronet_aml_third_party_abseil_cpp_absl_hash_hash",
+        ":cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
+        ":cronet_aml_third_party_abseil_cpp_absl_memory_memory",
+        ":cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
+        ":cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
+        ":cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
+        ":cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
+        ":cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_distributions",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_random",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
+        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
+        ":cronet_aml_third_party_abseil_cpp_absl_status_status",
+        ":cronet_aml_third_party_abseil_cpp_absl_status_statusor",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_strings_strings",
+        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
+        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
+        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
+        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
+        ":cronet_aml_third_party_abseil_cpp_absl_time_time",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_compare",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_optional",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_span",
+        ":cronet_aml_third_party_abseil_cpp_absl_types_variant",
+        ":cronet_aml_third_party_abseil_cpp_absl_utility_utility",
+        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_mutex_impl.cc",
+        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_time_utils_impl.cc",
+        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_url_utils_impl.cc",
+        "net/third_party/quiche/src/quiche/common/platform/api/quiche_hostname_utils.cc",
+        "net/third_party/quiche/src/quiche/common/platform/api/quiche_mutex.cc",
+        "net/third_party/quiche/src/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_buffer_allocator.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_crypto_logging.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_data_reader.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_data_writer.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_ip_address.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_ip_address_family.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_mem_slice_storage.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_random.cc",
+        "net/third_party/quiche/src/quiche/common/quiche_text_utils.cc",
+        "net/third_party/quiche/src/quiche/common/simple_buffer_allocator.cc",
+        "net/third_party/quiche/src/quiche/common/structured_headers.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/event_forwarder.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/header_validator.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/http2_protocol.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/http2_util.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/noop_header_validator.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_adapter.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_session.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_util.cc",
+        "net/third_party/quiche/src/quiche/http2/adapter/window_manager.cc",
+        "net/third_party/quiche/src/quiche/http2/core/http2_trace_logging.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/decode_buffer.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/decode_http2_structures.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/decode_status.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/frame_decoder_state.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/http2_frame_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/http2_frame_decoder_listener.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/http2_structure_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/continuation_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/data_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/goaway_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/headers_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/ping_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/priority_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/settings_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/unknown_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/window_update_payload_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_block_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_listener.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_state.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_tables.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoding_error.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_decoder_listener.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_type_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_string_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_string_decoder_listener.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_whole_entry_buffer.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_whole_entry_listener.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/http2_hpack_constants.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/huffman/hpack_huffman_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/huffman/hpack_huffman_encoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/huffman/huffman_spec_tables.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/varint/hpack_varint_decoder.cc",
+        "net/third_party/quiche/src/quiche/http2/hpack/varint/hpack_varint_encoder.cc",
+        "net/third_party/quiche/src/quiche/http2/http2_constants.cc",
+        "net/third_party/quiche/src/quiche/http2/http2_structures.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bandwidth_sampler.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_drain.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_misc.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_probe_bw.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_probe_rtt.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_sender.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_startup.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr_sender.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/cubic_bytes.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/general_loss_algorithm.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/hybrid_slow_start.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/pacing_sender.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/prr_sender.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/rtt_stats.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/send_algorithm_interface.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc",
+        "net/third_party/quiche/src/quiche/quic/core/congestion_control/uber_loss_algorithm.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aead_base_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aead_base_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_12_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_12_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_256_gcm_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_256_gcm_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_base_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_base_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/cert_compressor.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/certificate_util.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/certificate_view.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_tls_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_tls_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha_base_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha_base_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/channel_id.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/client_proof_source.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_framer.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_handshake.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_handshake_message.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_secret_boxer.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_utils.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/curve25519_key_exchange.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/key_exchange.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/null_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/null_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/p256_key_exchange.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/proof_source.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/proof_source_x509.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_client_session_cache.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_compressed_certs_cache.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_client_config.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_proof.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_server_config.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_decrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_encrypter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_client_connection.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_connection.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_server_connection.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/transport_parameters.cc",
+        "net/third_party/quiche/src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc",
+        "net/third_party/quiche/src/quiche/quic/core/deterministic_connection_id_generator.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ack_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ack_frequency_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_blocked_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_connection_close_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_crypto_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_goaway_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_handshake_done_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_max_streams_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_message_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_new_connection_id_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_new_token_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_padding_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_path_challenge_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_path_response_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ping_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_retire_connection_id_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_rst_stream_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stop_sending_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stop_waiting_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stream_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_streams_blocked_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/frames/quic_window_update_frame.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/capsule.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/http_constants.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/http_decoder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/http_encoder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_client_promised_info.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_client_push_promise_index.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_header_list.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_headers_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_receive_control_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_send_control_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_server_initiated_spdy_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_server_session_base.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_session.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_session_base.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_session.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_stream_body_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/spdy_server_push_utils.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/spdy_utils.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/web_transport_http3.cc",
+        "net/third_party/quiche/src/quiche/quic/core/http/web_transport_stream_adapter.cc",
+        "net/third_party/quiche/src/quiche/quic/core/legacy_quic_stream_id_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_blocking_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoded_headers_accumulator.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder_stream_receiver.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder_stream_sender.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder_stream_receiver.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder_stream_sender.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_header_table.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_index_conversions.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instruction_decoder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instruction_encoder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instructions.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_progressive_decoder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_receive_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_required_insert_count.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_send_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_static_table.cc",
+        "net/third_party/quiche/src/quiche/quic/core/qpack/value_splitting_header_list.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_ack_listener_interface.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_alarm.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_bandwidth.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_chaos_protector.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_clock.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_coalesced_packet.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_config.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_connection.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_connection_context.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_connection_id.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_connection_id_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_connection_stats.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_constants.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_control_frame_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_client_handshaker.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_client_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_handshaker.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_server_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_server_stream_base.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_data_reader.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_data_writer.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_datagram_queue.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_error_codes.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_flow_controller.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_framer.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_idle_network_detector.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_mtu_discovery.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_network_blackhole_detector.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_packet_creator.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_packet_number.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_packets.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_path_validator.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_ping_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_received_packet_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_sent_packet_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_server_id.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_session.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_socket_address_coder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_stream.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_stream_id_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_stream_send_buffer.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_stream_sequencer.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_stream_sequencer_buffer.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_sustained_bandwidth_recorder.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_tag.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_time.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_transmission_info.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_types.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_unacked_packet_map.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_utils.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_version_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_versions.cc",
+        "net/third_party/quiche/src/quiche/quic/core/quic_write_blocked_list.cc",
+        "net/third_party/quiche/src/quiche/quic/core/tls_client_handshaker.cc",
+        "net/third_party/quiche/src/quiche/quic/core/tls_handshaker.cc",
+        "net/third_party/quiche/src/quiche/quic/core/tls_server_handshaker.cc",
+        "net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/core/uber_received_packet_manager.cc",
+        "net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/array_output_buffer.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_constants.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_decoder_adapter.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_encoder.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_entry.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_header_table.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_output_stream.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_static_table.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/http2_frame_decoder_adapter.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/http2_header_block.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/http2_header_storage.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/recording_headers_handler.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_alt_svc_wire_format.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_frame_builder.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_framer.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_no_op_visitor.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_pinnable_buffer_piece.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_prefixed_buffer_reader.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_protocol.cc",
+        "net/third_party/quiche/src/quiche/spdy/core/spdy_simple_arena.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+        "cronet_aml_net_third_party_quiche_net_quic_proto",
+        "cronet_aml_net_uri_template",
+        "cronet_aml_third_party_boringssl_boringssl",
+        "cronet_aml_third_party_protobuf_protobuf_lite",
+        "cronet_aml_third_party_zlib_zlib",
+        "cronet_aml_url_url",
+    ],
+    generated_headers: [
+        "cronet_aml_build_chromeos_buildflags",
+    ],
+    export_generated_headers: [
+        "cronet_aml_build_chromeos_buildflags",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DABSL_ALLOCATOR_NOTHROW=1",
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_SYS_UIO_H",
+        "-DIS_QUICHE_IMPL",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "net/third_party/quiche/overrides/",
+        "net/third_party/quiche/src/",
+        "net/third_party/quiche/src/quiche/common/platform/default/",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/protobuf/src/",
+        "third_party/zlib/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net/tools/root_store_tool:root_store_tool
+cc_binary {
+    name: "cronet_aml_net_tools_root_store_tool_root_store_tool",
+    srcs: [
+        ":cronet_aml_buildtools_third_party_libc___libc__",
+        ":cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+        "net/tools/root_store_tool/root_store_tool.cc",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+        "cronet_aml_crypto_crypto",
+        "cronet_aml_net_cert_root_store_proto_full",
+        "cronet_aml_third_party_boringssl_boringssl",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DLIBCXXABI_SILENT_TERMINATE",
+        "-DLIBCXX_BUILDING_LIBCXXABI",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
+        "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
+        "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_BUILDING_LIBRARY",
+        "-D_LIBCPP_CONSTINIT=constinit",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++/trunk/src/",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/protobuf/src/",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //net/traffic_annotation:traffic_annotation
+filegroup {
+    name: "cronet_aml_net_traffic_annotation_traffic_annotation",
+    srcs: [
+        "net/traffic_annotation/network_traffic_annotation_android.cc",
+    ],
+}
+
+// GN: //net:uri_template
+cc_library_static {
+    name: "cronet_aml_net_uri_template",
+    srcs: [
+        "net/third_party/uri_template/uri_template.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-DIS_URI_TEMPLATE_IMPL",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/abseil-cpp:absl
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl",
+}
+
+// GN: //third_party/abseil-cpp/absl/algorithm:algorithm
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
+}
+
+// GN: //third_party/abseil-cpp/absl/algorithm:container
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:atomic_hook
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:base
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_base",
+    srcs: [
+        "third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
+        "third_party/abseil-cpp/absl/base/internal/spinlock.cc",
+        "third_party/abseil-cpp/absl/base/internal/sysinfo.cc",
+        "third_party/abseil-cpp/absl/base/internal/thread_identity.cc",
+        "third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/base:base_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:config
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_config",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:core_headers
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:cycleclock_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:dynamic_annotations
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:endian
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_endian",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:errno_saver
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:fast_type_id
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:log_severity
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
+    srcs: [
+        "third_party/abseil-cpp/absl/base/log_severity.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/base:malloc_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/base:prefetch
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
+}
+
+// GN: //third_party/abseil-cpp/absl/base:raw_logging_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/base:spinlock_wait
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
+    srcs: [
+        "third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/base:strerror
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
+    srcs: [
+        "third_party/abseil-cpp/absl/base/internal/strerror.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/base:throw_delegate
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
+    srcs: [
+        "third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/cleanup:cleanup
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
+}
+
+// GN: //third_party/abseil-cpp/absl/cleanup:cleanup_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:btree
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_btree",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:common
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_common",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:common_policy_traits
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:compressed_tuple
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:container_memory
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:fixed_array
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:flat_hash_map
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:flat_hash_set
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:hash_function_defaults
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:hash_policy_traits
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:hashtable_debug_hooks
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:hashtablez_sampler
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
+    srcs: [
+        "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
+        "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/container:inlined_vector
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:inlined_vector_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:layout
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_layout",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:node_hash_map
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:node_hash_set
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:node_slot_policy
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:raw_hash_map
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
+}
+
+// GN: //third_party/abseil-cpp/absl/container:raw_hash_set
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
+    srcs: [
+        "third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/debugging:debugging_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
+        "third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
+        "third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/debugging:demangle_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/debugging:examine_stack
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
+    srcs: [
+        "third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/debugging:failure_signal_handler
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
+    srcs: [
+        "third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/debugging:stacktrace
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
+    srcs: [
+        "third_party/abseil-cpp/absl/debugging/stacktrace.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/debugging:symbolize
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
+    srcs: [
+        "third_party/abseil-cpp/absl/debugging/symbolize.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/functional:any_invocable
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
+}
+
+// GN: //third_party/abseil-cpp/absl/functional:bind_front
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
+}
+
+// GN: //third_party/abseil-cpp/absl/functional:function_ref
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
+}
+
+// GN: //third_party/abseil-cpp/absl/hash:city
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_hash_city",
+    srcs: [
+        "third_party/abseil-cpp/absl/hash/internal/city.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/hash:hash
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
+    srcs: [
+        "third_party/abseil-cpp/absl/hash/internal/hash.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/hash:low_level_hash
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
+    srcs: [
+        "third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/memory:memory
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_memory_memory",
+}
+
+// GN: //third_party/abseil-cpp/absl/meta:type_traits
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
+}
+
+// GN: //third_party/abseil-cpp/absl/numeric:bits
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
+}
+
+// GN: //third_party/abseil-cpp/absl/numeric:int128
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
+    srcs: [
+        "third_party/abseil-cpp/absl/numeric/int128.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/numeric:representation
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
+}
+
+// GN: //third_party/abseil-cpp/absl/profiling:exponential_biased
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
+    srcs: [
+        "third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/profiling:sample_recorder
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
+}
+
+// GN: //third_party/abseil-cpp/absl/random:distributions
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/discrete_distribution.cc",
+        "third_party/abseil-cpp/absl/random/gaussian_distribution.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:distribution_caller
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:fast_uniform_bits
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:fastmath
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:generate_real
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:iostream_state_saver
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:nonsecure_base
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:pcg_engine
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:platform
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:pool_urbg
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:randen
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/internal/randen.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:randen_engine
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes_impl
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:randen_slow
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:salted_seed_seq
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:seed_material
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/internal/seed_material.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:traits
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:uniform_helper
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
+}
+
+// GN: //third_party/abseil-cpp/absl/random/internal:wide_multiply
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
+}
+
+// GN: //third_party/abseil-cpp/absl/random:random
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_random",
+}
+
+// GN: //third_party/abseil-cpp/absl/random:seed_gen_exception
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/random:seed_sequences
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
+    srcs: [
+        "third_party/abseil-cpp/absl/random/seed_sequences.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/status:status
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_status_status",
+    srcs: [
+        "third_party/abseil-cpp/absl/status/status.cc",
+        "third_party/abseil-cpp/absl/status/status_payload_printer.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/status:statusor
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
+    srcs: [
+        "third_party/abseil-cpp/absl/status/statusor.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cord
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/cord.cc",
+        "third_party/abseil-cpp/absl/strings/cord_analysis.cc",
+        "third_party/abseil-cpp/absl/strings/cord_buffer.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cord_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
+        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
+        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
+        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
+        "third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
+        "third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
+        "third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cordz_functions
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cordz_handle
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cordz_info
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cordz_statistics
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cordz_update_scope
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:cordz_update_tracker
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/internal/escaping.cc",
+        "third_party/abseil-cpp/absl/strings/internal/ostringstream.cc",
+        "third_party/abseil-cpp/absl/strings/internal/utf8.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:str_format
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:str_format_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
+        "third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc",
+        "third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc",
+        "third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
+        "third_party/abseil-cpp/absl/strings/internal/str_format/output.cc",
+        "third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/strings:strings
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
+    srcs: [
+        "third_party/abseil-cpp/absl/strings/ascii.cc",
+        "third_party/abseil-cpp/absl/strings/charconv.cc",
+        "third_party/abseil-cpp/absl/strings/escaping.cc",
+        "third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
+        "third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc",
+        "third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc",
+        "third_party/abseil-cpp/absl/strings/internal/memutil.cc",
+        "third_party/abseil-cpp/absl/strings/match.cc",
+        "third_party/abseil-cpp/absl/strings/numbers.cc",
+        "third_party/abseil-cpp/absl/strings/str_cat.cc",
+        "third_party/abseil-cpp/absl/strings/str_replace.cc",
+        "third_party/abseil-cpp/absl/strings/str_split.cc",
+        "third_party/abseil-cpp/absl/strings/string_view.cc",
+        "third_party/abseil-cpp/absl/strings/substitute.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/synchronization:graphcycles_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
+    srcs: [
+        "third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/synchronization:kernel_timeout_internal
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
+}
+
+// GN: //third_party/abseil-cpp/absl/synchronization:synchronization
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
+    srcs: [
+        "third_party/abseil-cpp/absl/synchronization/barrier.cc",
+        "third_party/abseil-cpp/absl/synchronization/blocking_counter.cc",
+        "third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
+        "third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
+        "third_party/abseil-cpp/absl/synchronization/internal/waiter.cc",
+        "third_party/abseil-cpp/absl/synchronization/mutex.cc",
+        "third_party/abseil-cpp/absl/synchronization/notification.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/time/internal/cctz:civil_time
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
+    srcs: [
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/time/internal/cctz:time_zone
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
+    srcs: [
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
+        "third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/time:time
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_time_time",
+    srcs: [
+        "third_party/abseil-cpp/absl/time/civil_time.cc",
+        "third_party/abseil-cpp/absl/time/clock.cc",
+        "third_party/abseil-cpp/absl/time/duration.cc",
+        "third_party/abseil-cpp/absl/time/format.cc",
+        "third_party/abseil-cpp/absl/time/time.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/types:bad_optional_access
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
+    srcs: [
+        "third_party/abseil-cpp/absl/types/bad_optional_access.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/types:bad_variant_access
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
+    srcs: [
+        "third_party/abseil-cpp/absl/types/bad_variant_access.cc",
+    ],
+}
+
+// GN: //third_party/abseil-cpp/absl/types:compare
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_types_compare",
+}
+
+// GN: //third_party/abseil-cpp/absl/types:optional
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_types_optional",
+}
+
+// GN: //third_party/abseil-cpp/absl/types:span
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_types_span",
+}
+
+// GN: //third_party/abseil-cpp/absl/types:variant
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_types_variant",
+}
+
+// GN: //third_party/abseil-cpp/absl/utility:utility
+filegroup {
+    name: "cronet_aml_third_party_abseil_cpp_absl_utility_utility",
+}
+
+// GN: //third_party/android_deps:auto_service_processor__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_auto_service_processor__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_annotation_processor " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_auto_service_auto_service_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/auto_service_processor.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:auto_service_processor " +
+         "--non-chromium-code " +
+         "--bundled-srcjars " +
+         "[] " +
+         "--main-class " +
+         "com.google.auto.service.processor.AutoServiceProcessor",
+    out: [
+        "third_party/android_deps/auto_service_processor.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_github_ben_manes_caffeine_caffeine_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_errorprone_error_prone_annotations_java.build_config.json)\", \"$(location third_party/android_deps/org_checkerframework_checker_qual_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_github_ben_manes_caffeine_caffeine_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_github_ben_manes_caffeine_caffeine_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_github_ben_manes_caffeine_caffeine.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_github_ben_manes_caffeine_caffeine/caffeine-2.8.8.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_github_ben_manes_caffeine_caffeine.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_github_ben_manes_caffeine_caffeine_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_github_ben_manes_caffeine_caffeine_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_github_ben_manes_caffeine_caffeine/caffeine-2.8.8.jar " +
+         "obj/third_party/android_deps/com_github_ben_manes_caffeine_caffeine.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_github_ben_manes_caffeine_caffeine.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_github_ben_manes_caffeine_caffeine/caffeine-2.8.8.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_github_ben_manes_caffeine_caffeine_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_github_ben_manes_caffeine_caffeine/caffeine-2.8.8.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_github_ben_manes_caffeine_caffeine.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_github_ben_manes_caffeine_caffeine.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_github_ben_manes_caffeine_caffeine/caffeine-2.8.8.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_github_kevinstern_software_and_algorithms_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_github_kevinstern_software_and_algorithms_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_github_kevinstern_software_and_algorithms_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_github_kevinstern_software_and_algorithms.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_github_kevinstern_software_and_algorithms/software-and-algorithms-1.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_github_kevinstern_software_and_algorithms.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_github_kevinstern_software_and_algorithms_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_github_kevinstern_software_and_algorithms_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_github_kevinstern_software_and_algorithms/software-and-algorithms-1.0.jar " +
+         "obj/third_party/android_deps/com_github_kevinstern_software_and_algorithms.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_github_kevinstern_software_and_algorithms.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_github_kevinstern_software_and_algorithms/software-and-algorithms-1.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_github_kevinstern_software_and_algorithms_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_github_kevinstern_software_and_algorithms/software-and-algorithms-1.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_github_kevinstern_software_and_algorithms.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_github_kevinstern_software_and_algorithms.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_github_kevinstern_software_and_algorithms/software-and-algorithms-1.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_auto_common_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_guava_guava_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_auto_auto_common_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_auto_auto_common_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_auto_auto_common.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_auto_auto_common/auto-common-1.2.1.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_auto_auto_common.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_auto_auto_common_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_auto_common_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_auto_auto_common/auto-common-1.2.1.jar " +
+         "obj/third_party/android_deps/com_google_auto_auto_common.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_auto_auto_common.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_auto_auto_common/auto-common-1.2.1.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_auto_common_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_auto_auto_common/auto-common-1.2.1.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_auto_auto_common.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_auto_auto_common.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_auto_auto_common/auto-common-1.2.1.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_service_auto_service_annotations_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_auto_service_auto_service_annotations_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_auto_service_auto_service_annotations_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_auto_service_auto_service_annotations.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/auto-service-annotations-1.0-rc6.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_auto_service_auto_service_annotations.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_auto_service_auto_service_annotations_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_service_auto_service_annotations_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/auto-service-annotations-1.0-rc6.jar " +
+         "obj/third_party/android_deps/com_google_auto_service_auto_service_annotations.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_auto_service_auto_service_annotations.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/auto-service-annotations-1.0-rc6.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_service_auto_service_annotations_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/auto-service-annotations-1.0-rc6.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_auto_service_auto_service_annotations.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_auto_service_auto_service_annotations.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/auto-service-annotations-1.0-rc6.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_service_auto_service_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_auto_auto_common_java.build_config.json)\", \"$(location third_party/android_deps/com_google_auto_service_auto_service_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_guava_guava_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_auto_service_auto_service_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_auto_service_auto_service_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_auto_service_auto_service.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_auto_service_auto_service/auto-service-1.0-rc6.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_auto_service_auto_service.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_auto_service_auto_service_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_service_auto_service_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_auto_service_auto_service/auto-service-1.0-rc6.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_auto_service_auto_service.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_auto_service_auto_service.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_auto_service_auto_service/auto-service-1.0-rc6.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_value_auto_value_annotations_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_auto_value_auto_value_annotations_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_auto_value_auto_value_annotations_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_auto_value_auto_value_annotations.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.9.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_auto_value_auto_value_annotations.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_auto_value_auto_value_annotations_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_value_auto_value_annotations_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.9.jar " +
+         "obj/third_party/android_deps/com_google_auto_value_auto_value_annotations.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_auto_value_auto_value_annotations.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.9.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_auto_value_auto_value_annotations_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.9.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_auto_value_auto_value_annotations.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_auto_value_auto_value_annotations.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.9.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_code_findbugs_jsr305_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_code_findbugs_jsr305_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_code_findbugs_jsr305_java " +
+         "--non-chromium-code " +
+         "--device-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_code_findbugs_jsr305.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_code_findbugs_jsr305.ijar.jar) " +
+         "--dex-path " +
+         "obj/third_party/android_deps/com_google_code_findbugs_jsr305_java.dex.jar " +
+         "--supports-android " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_code_findbugs_jsr305_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_code_findbugs_jsr305_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar " +
+         "obj/third_party/android_deps/com_google_code_findbugs_jsr305.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_code_findbugs_jsr305.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_code_findbugs_jsr305_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_code_findbugs_jsr305.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_code_findbugs_jsr305.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_annotation_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_guava_guava_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_errorprone_error_prone_annotation_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_errorprone_error_prone_annotation_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_errorprone_error_prone_annotation.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_errorprone_error_prone_annotation/error_prone_annotation-2.11.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_errorprone_error_prone_annotation.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_errorprone_error_prone_annotation_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_annotation_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_annotation/error_prone_annotation-2.11.0.jar " +
+         "obj/third_party/android_deps/com_google_errorprone_error_prone_annotation.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_errorprone_error_prone_annotation.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_annotation/error_prone_annotation-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_annotation_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_annotation/error_prone_annotation-2.11.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_errorprone_error_prone_annotation.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_errorprone_error_prone_annotation.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_annotation/error_prone_annotation-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_annotations_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_errorprone_error_prone_annotations_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java " +
+         "--non-chromium-code " +
+         "--device-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.14.0.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_errorprone_error_prone_annotations.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.14.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_errorprone_error_prone_annotations.ijar.jar) " +
+         "--dex-path " +
+         "obj/third_party/android_deps/com_google_errorprone_error_prone_annotations_java.dex.jar " +
+         "--supports-android " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_errorprone_error_prone_annotations_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_annotations_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.14.0.jar " +
+         "obj/third_party/android_deps/com_google_errorprone_error_prone_annotations.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_errorprone_error_prone_annotations.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.14.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_annotations_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.14.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_errorprone_error_prone_annotations.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_errorprone_error_prone_annotations.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.14.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_check_api_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_github_ben_manes_caffeine_caffeine_java.build_config.json)\", \"$(location third_party/android_deps/com_github_kevinstern_software_and_algorithms_java.build_config.json)\", \"$(location third_party/android_deps/com_google_auto_value_auto_value_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_code_findbugs_jsr305_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_annotation_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_annotations_java.build_config.json)\", \"$(location third_party/android_deps/io_github_java_diff_utils_java_diff_utils_java.build_config.json)\", \"$(location third_party/android_deps/org_checkerframework_dataflow_errorprone_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_errorprone_error_prone_check_api_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_errorprone_error_prone_check_api_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_errorprone_error_prone_check_api.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/error_prone_check_api-2.11.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_errorprone_error_prone_check_api.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_errorprone_error_prone_check_api_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_check_api_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/error_prone_check_api-2.11.0.jar " +
+         "obj/third_party/android_deps/com_google_errorprone_error_prone_check_api.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_errorprone_error_prone_check_api.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/error_prone_check_api-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_check_api_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/error_prone_check_api-2.11.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_errorprone_error_prone_check_api.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_errorprone_error_prone_check_api.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/error_prone_check_api-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_core_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_auto_auto_common_java.build_config.json)\", \"$(location third_party/android_deps/com_google_auto_service_auto_service_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_auto_value_auto_value_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_code_findbugs_jsr305_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_annotation_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_check_api_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_type_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_guava_guava_java.build_config.json)\", \"$(location third_party/android_deps/com_google_protobuf_protobuf_java_java.build_config.json)\", \"$(location third_party/android_deps/org_checkerframework_dataflow_errorprone_java.build_config.json)\", \"$(location third_party/android_deps/org_pcollections_pcollections_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_errorprone_error_prone_core_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_errorprone_error_prone_core_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_errorprone_error_prone_core.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_errorprone_error_prone_core/error_prone_core-2.11.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_errorprone_error_prone_core.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_errorprone_error_prone_core_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_core_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_core/error_prone_core-2.11.0.jar " +
+         "obj/third_party/android_deps/com_google_errorprone_error_prone_core.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_errorprone_error_prone_core.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_core/error_prone_core-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_core_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_core/error_prone_core-2.11.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_errorprone_error_prone_core.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_errorprone_error_prone_core.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_core/error_prone_core-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_type_annotations_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_errorprone_error_prone_type_annotations_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_errorprone_error_prone_type_annotations_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_errorprone_error_prone_type_annotations.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/error_prone_type_annotations-2.11.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_errorprone_error_prone_type_annotations.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_errorprone_error_prone_type_annotations_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_type_annotations_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/error_prone_type_annotations-2.11.0.jar " +
+         "obj/third_party/android_deps/com_google_errorprone_error_prone_type_annotations.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_errorprone_error_prone_type_annotations.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/error_prone_type_annotations-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_error_prone_type_annotations_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/error_prone_type_annotations-2.11.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_errorprone_error_prone_type_annotations.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_errorprone_error_prone_type_annotations.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/error_prone_type_annotations-2.11.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_javac_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_errorprone_javac_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_errorprone_javac_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_errorprone_javac.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_errorprone_javac/javac-9+181-r4173-1.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_errorprone_javac.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_errorprone_javac_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_javac_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_errorprone_javac/javac-9+181-r4173-1.jar " +
+         "obj/third_party/android_deps/com_google_errorprone_javac.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_errorprone_javac.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_errorprone_javac/javac-9+181-r4173-1.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_errorprone_javac_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_errorprone_javac/javac-9+181-r4173-1.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_errorprone_javac.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_errorprone_javac.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_errorprone_javac/javac-9+181-r4173-1.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_failureaccess_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_guava_failureaccess_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_guava_failureaccess_java " +
+         "--non-chromium-code " +
+         "--device-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_guava_failureaccess/failureaccess-1.0.1.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_guava_failureaccess.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_guava_failureaccess/failureaccess-1.0.1.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_guava_failureaccess.ijar.jar) " +
+         "--dex-path " +
+         "obj/third_party/android_deps/com_google_guava_failureaccess_java.dex.jar " +
+         "--supports-android " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_guava_failureaccess_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_failureaccess_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_guava_failureaccess/failureaccess-1.0.1.jar " +
+         "obj/third_party/android_deps/com_google_guava_failureaccess.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_guava_failureaccess.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_guava_failureaccess/failureaccess-1.0.1.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_failureaccess_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_guava_failureaccess/failureaccess-1.0.1.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_guava_failureaccess.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_guava_failureaccess.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_guava_failureaccess/failureaccess-1.0.1.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_guava_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_guava_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_code_findbugs_jsr305_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_guava_failureaccess_java.build_config.json)\", \"$(location third_party/android_deps/com_google_guava_listenablefuture_java.build_config.json)\", \"$(location third_party/android_deps/com_google_j2objc_j2objc_annotations_java.build_config.json)\", \"$(location third_party/android_deps/org_checkerframework_checker_qual_java.build_config.json)\", \"$(location third_party/android_deps/com_google_guava_listenablefuture_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_guava_guava_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_guava_guava_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_guava_guava.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_guava_guava/guava-31.0.1-jre.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_guava_guava.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_guava_guava_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_guava_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_guava_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_guava_guava/guava-31.0.1-jre.jar " +
+         "obj/third_party/android_deps/com_google_guava_guava.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_guava_guava.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_guava_guava/guava-31.0.1-jre.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_guava_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_guava_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_guava_guava/guava-31.0.1-jre.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_guava_guava.jar " +
+         "--exclude-globs " +
+         "[\"*/ListenableFuture.class\"] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_guava_guava.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_guava_guava/guava-31.0.1-jre.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_listenablefuture_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_guava_listenablefuture_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_guava_listenablefuture_java " +
+         "--non-chromium-code " +
+         "--device-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_guava_listenablefuture/listenablefuture-1.0.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_guava_listenablefuture.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_guava_listenablefuture/listenablefuture-1.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_guava_listenablefuture.ijar.jar) " +
+         "--dex-path " +
+         "obj/third_party/android_deps/com_google_guava_listenablefuture_java.dex.jar " +
+         "--supports-android " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_guava_listenablefuture_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_listenablefuture_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_guava_listenablefuture/listenablefuture-1.0.jar " +
+         "obj/third_party/android_deps/com_google_guava_listenablefuture.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_guava_listenablefuture.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_guava_listenablefuture/listenablefuture-1.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_guava_listenablefuture_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_guava_listenablefuture/listenablefuture-1.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_guava_listenablefuture.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_guava_listenablefuture.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_guava_listenablefuture/listenablefuture-1.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_j2objc_j2objc_annotations_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_j2objc_j2objc_annotations_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_j2objc_j2objc_annotations_java " +
+         "--non-chromium-code " +
+         "--device-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.3.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_j2objc_j2objc_annotations.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.3.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_j2objc_j2objc_annotations.ijar.jar) " +
+         "--dex-path " +
+         "obj/third_party/android_deps/com_google_j2objc_j2objc_annotations_java.dex.jar " +
+         "--supports-android " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_j2objc_j2objc_annotations_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_j2objc_j2objc_annotations_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.3.jar " +
+         "obj/third_party/android_deps/com_google_j2objc_j2objc_annotations.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_j2objc_j2objc_annotations.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.3.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_j2objc_j2objc_annotations_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.3.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_j2objc_j2objc_annotations.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_j2objc_j2objc_annotations.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.3.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_protobuf_protobuf_java_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/com_google_protobuf_protobuf_java_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:com_google_protobuf_protobuf_java_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/com_google_protobuf_protobuf_java.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/com_google_protobuf_protobuf_java/protobuf-java-3.19.2.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/com_google_protobuf_protobuf_java.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/com_google_protobuf_protobuf_java_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_protobuf_protobuf_java_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/com_google_protobuf_protobuf_java/protobuf-java-3.19.2.jar " +
+         "obj/third_party/android_deps/com_google_protobuf_protobuf_java.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/com_google_protobuf_protobuf_java.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/com_google_protobuf_protobuf_java/protobuf-java-3.19.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:com_google_protobuf_protobuf_java_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/com_google_protobuf_protobuf_java/protobuf-java-3.19.2.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/com_google_protobuf_protobuf_java.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/com_google_protobuf_protobuf_java.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/com_google_protobuf_protobuf_java/protobuf-java-3.19.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:io_github_java_diff_utils_java_diff_utils_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/io_github_java_diff_utils_java_diff_utils_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:io_github_java_diff_utils_java_diff_utils_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/io_github_java_diff_utils_java_diff_utils.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/io_github_java_diff_utils_java_diff_utils/java-diff-utils-4.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/io_github_java_diff_utils_java_diff_utils.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/io_github_java_diff_utils_java_diff_utils_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:io_github_java_diff_utils_java_diff_utils_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/io_github_java_diff_utils_java_diff_utils/java-diff-utils-4.0.jar " +
+         "obj/third_party/android_deps/io_github_java_diff_utils_java_diff_utils.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/io_github_java_diff_utils_java_diff_utils.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/io_github_java_diff_utils_java_diff_utils/java-diff-utils-4.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:io_github_java_diff_utils_java_diff_utils_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/io_github_java_diff_utils_java_diff_utils/java-diff-utils-4.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/io_github_java_diff_utils_java_diff_utils.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/io_github_java_diff_utils_java_diff_utils.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/io_github_java_diff_utils_java_diff_utils/java-diff-utils-4.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_checkerframework_checker_qual_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_checkerframework_checker_qual_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_checkerframework_checker_qual_java " +
+         "--non-chromium-code " +
+         "--device-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_checkerframework_checker_qual/checker-qual-3.25.0.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_checkerframework_checker_qual.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_checkerframework_checker_qual/checker-qual-3.25.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_checkerframework_checker_qual.ijar.jar) " +
+         "--dex-path " +
+         "obj/third_party/android_deps/org_checkerframework_checker_qual_java.dex.jar " +
+         "--supports-android " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_checkerframework_checker_qual_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_checkerframework_checker_qual_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_checkerframework_checker_qual/checker-qual-3.25.0.jar " +
+         "obj/third_party/android_deps/org_checkerframework_checker_qual.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_checkerframework_checker_qual.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_checkerframework_checker_qual/checker-qual-3.25.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_checkerframework_checker_qual_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_checkerframework_checker_qual/checker-qual-3.25.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_checkerframework_checker_qual.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_checkerframework_checker_qual.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_checkerframework_checker_qual/checker-qual-3.25.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_checkerframework_dataflow_errorprone_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_checkerframework_dataflow_errorprone_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_checkerframework_dataflow_errorprone_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_checkerframework_dataflow_errorprone.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_checkerframework_dataflow_errorprone/dataflow-errorprone-3.15.0.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_checkerframework_dataflow_errorprone.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_checkerframework_dataflow_errorprone_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_checkerframework_dataflow_errorprone_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_checkerframework_dataflow_errorprone/dataflow-errorprone-3.15.0.jar " +
+         "obj/third_party/android_deps/org_checkerframework_dataflow_errorprone.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_checkerframework_dataflow_errorprone.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_checkerframework_dataflow_errorprone/dataflow-errorprone-3.15.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_checkerframework_dataflow_errorprone_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_checkerframework_dataflow_errorprone/dataflow-errorprone-3.15.0.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_checkerframework_dataflow_errorprone.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_checkerframework_dataflow_errorprone.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_checkerframework_dataflow_errorprone/dataflow-errorprone-3.15.0.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_eclipse_jgit_org_eclipse_jgit_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_eclipse_jgit_org_eclipse_jgit_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_eclipse_jgit_org_eclipse_jgit/org.eclipse.jgit-4.4.1.201607150455-r.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_eclipse_jgit_org_eclipse_jgit_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_eclipse_jgit_org_eclipse_jgit/org.eclipse.jgit-4.4.1.201607150455-r.jar " +
+         "obj/third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_eclipse_jgit_org_eclipse_jgit/org.eclipse.jgit-4.4.1.201607150455-r.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_eclipse_jgit_org_eclipse_jgit_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_eclipse_jgit_org_eclipse_jgit/org.eclipse.jgit-4.4.1.201607150455-r.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_eclipse_jgit_org_eclipse_jgit.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_eclipse_jgit_org_eclipse_jgit/org.eclipse.jgit-4.4.1.201607150455-r.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_analysis_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/org_ow2_asm_asm_tree_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_ow2_asm_asm_analysis_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_ow2_asm_asm_analysis_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_ow2_asm_asm_analysis.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_ow2_asm_asm_analysis/asm-analysis-9.2.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_ow2_asm_asm_analysis.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_ow2_asm_asm_analysis_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_analysis_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm_analysis/asm-analysis-9.2.jar " +
+         "obj/third_party/android_deps/org_ow2_asm_asm_analysis.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_ow2_asm_asm_analysis.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_ow2_asm_asm_analysis/asm-analysis-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_analysis_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm_analysis/asm-analysis-9.2.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_ow2_asm_asm_analysis.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_ow2_asm_asm_analysis.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_ow2_asm_asm_analysis/asm-analysis-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_ow2_asm_asm_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_ow2_asm_asm_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_ow2_asm_asm.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_ow2_asm_asm/asm-9.2.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_ow2_asm_asm.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_ow2_asm_asm_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm/asm-9.2.jar " +
+         "obj/third_party/android_deps/org_ow2_asm_asm.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_ow2_asm_asm.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_ow2_asm_asm/asm-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm/asm-9.2.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_ow2_asm_asm.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_ow2_asm_asm.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_ow2_asm_asm/asm-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_tree_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/org_ow2_asm_asm_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_ow2_asm_asm_tree_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_ow2_asm_asm_tree_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_ow2_asm_asm_tree.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_ow2_asm_asm_tree/asm-tree-9.2.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_ow2_asm_asm_tree.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_ow2_asm_asm_tree_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_tree_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm_tree/asm-tree-9.2.jar " +
+         "obj/third_party/android_deps/org_ow2_asm_asm_tree.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_ow2_asm_asm_tree.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_ow2_asm_asm_tree/asm-tree-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_tree_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm_tree/asm-tree-9.2.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_ow2_asm_asm_tree.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_ow2_asm_asm_tree.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_ow2_asm_asm_tree/asm-tree-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_util_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/org_ow2_asm_asm_analysis_java.build_config.json)\", \"$(location third_party/android_deps/org_ow2_asm_asm_java.build_config.json)\", \"$(location third_party/android_deps/org_ow2_asm_asm_tree_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_ow2_asm_asm_util_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_ow2_asm_asm_util_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_ow2_asm_asm_util.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_ow2_asm_asm_util/asm-util-9.2.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_ow2_asm_asm_util.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_ow2_asm_asm_util_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_util_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm_util/asm-util-9.2.jar " +
+         "obj/third_party/android_deps/org_ow2_asm_asm_util.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_ow2_asm_asm_util.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_ow2_asm_asm_util/asm-util-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_ow2_asm_asm_util_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_ow2_asm_asm_util/asm-util-9.2.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_ow2_asm_asm_util.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_ow2_asm_asm_util.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_ow2_asm_asm_util/asm-util-9.2.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_pcollections_pcollections_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_deps/org_pcollections_pcollections_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_deps:org_pcollections_pcollections_java " +
+         "--non-chromium-code " +
+         "--host-jar-path " +
+         "$(location lib.java/third_party/android_deps/org_pcollections_pcollections.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_deps/libs/org_pcollections_pcollections/pcollections-3.1.4.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_deps/org_pcollections_pcollections.ijar.jar) " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_deps/org_pcollections_pcollections_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_deps:org_pcollections_pcollections_java__header
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_deps/libs/org_pcollections_pcollections/pcollections-3.1.4.jar " +
+         "obj/third_party/android_deps/org_pcollections_pcollections.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_deps/org_pcollections_pcollections.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_deps/libs/org_pcollections_pcollections/pcollections-3.1.4.jar",
+    ],
+}
+
+// GN: //third_party/android_deps:org_pcollections_pcollections_java__host
+genrule {
+    name: "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "../../third_party/android_deps/libs/org_pcollections_pcollections/pcollections-3.1.4.jar " +
+         "--output " +
+         "lib.java/third_party/android_deps/org_pcollections_pcollections.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/third_party/android_deps/org_pcollections_pcollections.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "third_party/android_deps/libs/org_pcollections_pcollections/pcollections-3.1.4.jar",
+    ],
+}
+
+// GN: //third_party/android_ndk:cpu_features
+filegroup {
+    name: "cronet_aml_third_party_android_ndk_cpu_features",
+    srcs: [
+        "third_party/android_ndk/sources/android/cpufeatures/cpu-features.c",
+    ],
+}
+
+// GN: //third_party/android_sdk:android_sdk_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_third_party_android_sdk_android_sdk_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "system_java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/third_party/android_sdk/android_sdk_java.build_config.json " +
+         "--gn-target " +
+         "//third_party/android_sdk:android_sdk_java " +
+         "--non-chromium-code " +
+         "--unprocessed-jar-path " +
+         "$(location ../../third_party/android_sdk/public/platforms/android-33/android.jar) " +
+         "--interface-jar-path " +
+         "$(location third_party/android_sdk/android.ijar.jar) " +
+         "--supports-android " +
+         "--is-prebuilt " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "third_party/android_sdk/android_sdk_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //third_party/android_sdk:android_sdk_java__header
+genrule {
+    name: "cronet_aml_third_party_android_sdk_android_sdk_java__header",
+    cmd: "$(location build/android/gyp/ijar.py) clang_x64/ijar " +
+         "../../third_party/android_sdk/public/platforms/android-33/android.jar " +
+         "obj/third_party/android_sdk/android.ijar.jar",
+    out: [
+        "//out/test/obj/third_party/android_sdk/android.ijar.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/ijar.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/clang_x64/ijar",
+        "third_party/android_sdk/public/platforms/android-33/android.jar",
+    ],
+}
+
+// GN: //third_party/ashmem:ashmem
+filegroup {
+    name: "cronet_aml_third_party_ashmem_ashmem",
+    srcs: [
+        "third_party/ashmem/ashmem-dev.c",
+    ],
+}
+
+// GN: //third_party/boringssl:boringssl
+cc_library_static {
+    name: "cronet_aml_third_party_boringssl_boringssl",
+    srcs: [
+        ":cronet_aml_third_party_boringssl_boringssl_asm",
+        ":cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
+        "third_party/boringssl/err_data.c",
+        "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
+        "third_party/boringssl/src/crypto/asn1/a_bool.c",
+        "third_party/boringssl/src/crypto/asn1/a_d2i_fp.c",
+        "third_party/boringssl/src/crypto/asn1/a_dup.c",
+        "third_party/boringssl/src/crypto/asn1/a_gentm.c",
+        "third_party/boringssl/src/crypto/asn1/a_i2d_fp.c",
+        "third_party/boringssl/src/crypto/asn1/a_int.c",
+        "third_party/boringssl/src/crypto/asn1/a_mbstr.c",
+        "third_party/boringssl/src/crypto/asn1/a_object.c",
+        "third_party/boringssl/src/crypto/asn1/a_octet.c",
+        "third_party/boringssl/src/crypto/asn1/a_print.c",
+        "third_party/boringssl/src/crypto/asn1/a_strex.c",
+        "third_party/boringssl/src/crypto/asn1/a_strnid.c",
+        "third_party/boringssl/src/crypto/asn1/a_time.c",
+        "third_party/boringssl/src/crypto/asn1/a_type.c",
+        "third_party/boringssl/src/crypto/asn1/a_utctm.c",
+        "third_party/boringssl/src/crypto/asn1/a_utf8.c",
+        "third_party/boringssl/src/crypto/asn1/asn1_lib.c",
+        "third_party/boringssl/src/crypto/asn1/asn1_par.c",
+        "third_party/boringssl/src/crypto/asn1/asn_pack.c",
+        "third_party/boringssl/src/crypto/asn1/f_int.c",
+        "third_party/boringssl/src/crypto/asn1/f_string.c",
+        "third_party/boringssl/src/crypto/asn1/posix_time.c",
+        "third_party/boringssl/src/crypto/asn1/tasn_dec.c",
+        "third_party/boringssl/src/crypto/asn1/tasn_enc.c",
+        "third_party/boringssl/src/crypto/asn1/tasn_fre.c",
+        "third_party/boringssl/src/crypto/asn1/tasn_new.c",
+        "third_party/boringssl/src/crypto/asn1/tasn_typ.c",
+        "third_party/boringssl/src/crypto/asn1/tasn_utl.c",
+        "third_party/boringssl/src/crypto/base64/base64.c",
+        "third_party/boringssl/src/crypto/bio/bio.c",
+        "third_party/boringssl/src/crypto/bio/bio_mem.c",
+        "third_party/boringssl/src/crypto/bio/connect.c",
+        "third_party/boringssl/src/crypto/bio/fd.c",
+        "third_party/boringssl/src/crypto/bio/file.c",
+        "third_party/boringssl/src/crypto/bio/hexdump.c",
+        "third_party/boringssl/src/crypto/bio/pair.c",
+        "third_party/boringssl/src/crypto/bio/printf.c",
+        "third_party/boringssl/src/crypto/bio/socket.c",
+        "third_party/boringssl/src/crypto/bio/socket_helper.c",
+        "third_party/boringssl/src/crypto/blake2/blake2.c",
+        "third_party/boringssl/src/crypto/bn_extra/bn_asn1.c",
+        "third_party/boringssl/src/crypto/bn_extra/convert.c",
+        "third_party/boringssl/src/crypto/buf/buf.c",
+        "third_party/boringssl/src/crypto/bytestring/asn1_compat.c",
+        "third_party/boringssl/src/crypto/bytestring/ber.c",
+        "third_party/boringssl/src/crypto/bytestring/cbb.c",
+        "third_party/boringssl/src/crypto/bytestring/cbs.c",
+        "third_party/boringssl/src/crypto/bytestring/unicode.c",
+        "third_party/boringssl/src/crypto/chacha/chacha.c",
+        "third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c",
+        "third_party/boringssl/src/crypto/cipher_extra/derive_key.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_des.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_null.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_rc2.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_rc4.c",
+        "third_party/boringssl/src/crypto/cipher_extra/e_tls.c",
+        "third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c",
+        "third_party/boringssl/src/crypto/conf/conf.c",
+        "third_party/boringssl/src/crypto/cpu_aarch64_apple.c",
+        "third_party/boringssl/src/crypto/cpu_aarch64_fuchsia.c",
+        "third_party/boringssl/src/crypto/cpu_aarch64_linux.c",
+        "third_party/boringssl/src/crypto/cpu_aarch64_win.c",
+        "third_party/boringssl/src/crypto/cpu_arm.c",
+        "third_party/boringssl/src/crypto/cpu_arm_linux.c",
+        "third_party/boringssl/src/crypto/cpu_intel.c",
+        "third_party/boringssl/src/crypto/cpu_ppc64le.c",
+        "third_party/boringssl/src/crypto/crypto.c",
+        "third_party/boringssl/src/crypto/curve25519/curve25519.c",
+        "third_party/boringssl/src/crypto/curve25519/spake25519.c",
+        "third_party/boringssl/src/crypto/des/des.c",
+        "third_party/boringssl/src/crypto/dh_extra/dh_asn1.c",
+        "third_party/boringssl/src/crypto/dh_extra/params.c",
+        "third_party/boringssl/src/crypto/digest_extra/digest_extra.c",
+        "third_party/boringssl/src/crypto/dsa/dsa.c",
+        "third_party/boringssl/src/crypto/dsa/dsa_asn1.c",
+        "third_party/boringssl/src/crypto/ec_extra/ec_asn1.c",
+        "third_party/boringssl/src/crypto/ec_extra/ec_derive.c",
+        "third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c",
+        "third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c",
+        "third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c",
+        "third_party/boringssl/src/crypto/engine/engine.c",
+        "third_party/boringssl/src/crypto/err/err.c",
+        "third_party/boringssl/src/crypto/evp/evp.c",
+        "third_party/boringssl/src/crypto/evp/evp_asn1.c",
+        "third_party/boringssl/src/crypto/evp/evp_ctx.c",
+        "third_party/boringssl/src/crypto/evp/p_dsa_asn1.c",
+        "third_party/boringssl/src/crypto/evp/p_ec.c",
+        "third_party/boringssl/src/crypto/evp/p_ec_asn1.c",
+        "third_party/boringssl/src/crypto/evp/p_ed25519.c",
+        "third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c",
+        "third_party/boringssl/src/crypto/evp/p_hkdf.c",
+        "third_party/boringssl/src/crypto/evp/p_rsa.c",
+        "third_party/boringssl/src/crypto/evp/p_rsa_asn1.c",
+        "third_party/boringssl/src/crypto/evp/p_x25519.c",
+        "third_party/boringssl/src/crypto/evp/p_x25519_asn1.c",
+        "third_party/boringssl/src/crypto/evp/pbkdf.c",
+        "third_party/boringssl/src/crypto/evp/print.c",
+        "third_party/boringssl/src/crypto/evp/scrypt.c",
+        "third_party/boringssl/src/crypto/evp/sign.c",
+        "third_party/boringssl/src/crypto/ex_data.c",
+        "third_party/boringssl/src/crypto/fipsmodule/bcm.c",
+        "third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c",
+        "third_party/boringssl/src/crypto/hkdf/hkdf.c",
+        "third_party/boringssl/src/crypto/hpke/hpke.c",
+        "third_party/boringssl/src/crypto/hrss/hrss.c",
+        "third_party/boringssl/src/crypto/lhash/lhash.c",
+        "third_party/boringssl/src/crypto/mem.c",
+        "third_party/boringssl/src/crypto/obj/obj.c",
+        "third_party/boringssl/src/crypto/obj/obj_xref.c",
+        "third_party/boringssl/src/crypto/pem/pem_all.c",
+        "third_party/boringssl/src/crypto/pem/pem_info.c",
+        "third_party/boringssl/src/crypto/pem/pem_lib.c",
+        "third_party/boringssl/src/crypto/pem/pem_oth.c",
+        "third_party/boringssl/src/crypto/pem/pem_pk8.c",
+        "third_party/boringssl/src/crypto/pem/pem_pkey.c",
+        "third_party/boringssl/src/crypto/pem/pem_x509.c",
+        "third_party/boringssl/src/crypto/pem/pem_xaux.c",
+        "third_party/boringssl/src/crypto/pkcs7/pkcs7.c",
+        "third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c",
+        "third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c",
+        "third_party/boringssl/src/crypto/pkcs8/pkcs8.c",
+        "third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c",
+        "third_party/boringssl/src/crypto/poly1305/poly1305.c",
+        "third_party/boringssl/src/crypto/poly1305/poly1305_arm.c",
+        "third_party/boringssl/src/crypto/poly1305/poly1305_vec.c",
+        "third_party/boringssl/src/crypto/pool/pool.c",
+        "third_party/boringssl/src/crypto/rand_extra/deterministic.c",
+        "third_party/boringssl/src/crypto/rand_extra/forkunsafe.c",
+        "third_party/boringssl/src/crypto/rand_extra/fuchsia.c",
+        "third_party/boringssl/src/crypto/rand_extra/passive.c",
+        "third_party/boringssl/src/crypto/rand_extra/rand_extra.c",
+        "third_party/boringssl/src/crypto/rand_extra/windows.c",
+        "third_party/boringssl/src/crypto/rc4/rc4.c",
+        "third_party/boringssl/src/crypto/refcount_c11.c",
+        "third_party/boringssl/src/crypto/refcount_lock.c",
+        "third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c",
+        "third_party/boringssl/src/crypto/rsa_extra/rsa_print.c",
+        "third_party/boringssl/src/crypto/siphash/siphash.c",
+        "third_party/boringssl/src/crypto/stack/stack.c",
+        "third_party/boringssl/src/crypto/thread.c",
+        "third_party/boringssl/src/crypto/thread_none.c",
+        "third_party/boringssl/src/crypto/thread_pthread.c",
+        "third_party/boringssl/src/crypto/thread_win.c",
+        "third_party/boringssl/src/crypto/trust_token/pmbtoken.c",
+        "third_party/boringssl/src/crypto/trust_token/trust_token.c",
+        "third_party/boringssl/src/crypto/trust_token/voprf.c",
+        "third_party/boringssl/src/crypto/x509/a_digest.c",
+        "third_party/boringssl/src/crypto/x509/a_sign.c",
+        "third_party/boringssl/src/crypto/x509/a_verify.c",
+        "third_party/boringssl/src/crypto/x509/algorithm.c",
+        "third_party/boringssl/src/crypto/x509/asn1_gen.c",
+        "third_party/boringssl/src/crypto/x509/by_dir.c",
+        "third_party/boringssl/src/crypto/x509/by_file.c",
+        "third_party/boringssl/src/crypto/x509/i2d_pr.c",
+        "third_party/boringssl/src/crypto/x509/name_print.c",
+        "third_party/boringssl/src/crypto/x509/rsa_pss.c",
+        "third_party/boringssl/src/crypto/x509/t_crl.c",
+        "third_party/boringssl/src/crypto/x509/t_req.c",
+        "third_party/boringssl/src/crypto/x509/t_x509.c",
+        "third_party/boringssl/src/crypto/x509/t_x509a.c",
+        "third_party/boringssl/src/crypto/x509/x509.c",
+        "third_party/boringssl/src/crypto/x509/x509_att.c",
+        "third_party/boringssl/src/crypto/x509/x509_cmp.c",
+        "third_party/boringssl/src/crypto/x509/x509_d2.c",
+        "third_party/boringssl/src/crypto/x509/x509_def.c",
+        "third_party/boringssl/src/crypto/x509/x509_ext.c",
+        "third_party/boringssl/src/crypto/x509/x509_lu.c",
+        "third_party/boringssl/src/crypto/x509/x509_obj.c",
+        "third_party/boringssl/src/crypto/x509/x509_req.c",
+        "third_party/boringssl/src/crypto/x509/x509_set.c",
+        "third_party/boringssl/src/crypto/x509/x509_trs.c",
+        "third_party/boringssl/src/crypto/x509/x509_txt.c",
+        "third_party/boringssl/src/crypto/x509/x509_v3.c",
+        "third_party/boringssl/src/crypto/x509/x509_vfy.c",
+        "third_party/boringssl/src/crypto/x509/x509_vpm.c",
+        "third_party/boringssl/src/crypto/x509/x509cset.c",
+        "third_party/boringssl/src/crypto/x509/x509name.c",
+        "third_party/boringssl/src/crypto/x509/x509rset.c",
+        "third_party/boringssl/src/crypto/x509/x509spki.c",
+        "third_party/boringssl/src/crypto/x509/x_algor.c",
+        "third_party/boringssl/src/crypto/x509/x_all.c",
+        "third_party/boringssl/src/crypto/x509/x_attrib.c",
+        "third_party/boringssl/src/crypto/x509/x_crl.c",
+        "third_party/boringssl/src/crypto/x509/x_exten.c",
+        "third_party/boringssl/src/crypto/x509/x_info.c",
+        "third_party/boringssl/src/crypto/x509/x_name.c",
+        "third_party/boringssl/src/crypto/x509/x_pkey.c",
+        "third_party/boringssl/src/crypto/x509/x_pubkey.c",
+        "third_party/boringssl/src/crypto/x509/x_req.c",
+        "third_party/boringssl/src/crypto/x509/x_sig.c",
+        "third_party/boringssl/src/crypto/x509/x_spki.c",
+        "third_party/boringssl/src/crypto/x509/x_val.c",
+        "third_party/boringssl/src/crypto/x509/x_x509.c",
+        "third_party/boringssl/src/crypto/x509/x_x509a.c",
+        "third_party/boringssl/src/crypto/x509v3/pcy_cache.c",
+        "third_party/boringssl/src/crypto/x509v3/pcy_data.c",
+        "third_party/boringssl/src/crypto/x509v3/pcy_map.c",
+        "third_party/boringssl/src/crypto/x509v3/pcy_node.c",
+        "third_party/boringssl/src/crypto/x509v3/pcy_tree.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_akey.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_akeya.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_alt.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_bcons.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_bitst.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_conf.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_cpols.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_crld.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_enum.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_extku.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_genn.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_ia5.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_info.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_int.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_lib.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_ncons.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_ocsp.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_pci.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_pcia.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_pcons.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_pmaps.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_prn.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_purp.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_skey.c",
+        "third_party/boringssl/src/crypto/x509v3/v3_utl.c",
+        "third_party/boringssl/src/ssl/bio_ssl.cc",
+        "third_party/boringssl/src/ssl/d1_both.cc",
+        "third_party/boringssl/src/ssl/d1_lib.cc",
+        "third_party/boringssl/src/ssl/d1_pkt.cc",
+        "third_party/boringssl/src/ssl/d1_srtp.cc",
+        "third_party/boringssl/src/ssl/dtls_method.cc",
+        "third_party/boringssl/src/ssl/dtls_record.cc",
+        "third_party/boringssl/src/ssl/encrypted_client_hello.cc",
+        "third_party/boringssl/src/ssl/extensions.cc",
+        "third_party/boringssl/src/ssl/handoff.cc",
+        "third_party/boringssl/src/ssl/handshake.cc",
+        "third_party/boringssl/src/ssl/handshake_client.cc",
+        "third_party/boringssl/src/ssl/handshake_server.cc",
+        "third_party/boringssl/src/ssl/s3_both.cc",
+        "third_party/boringssl/src/ssl/s3_lib.cc",
+        "third_party/boringssl/src/ssl/s3_pkt.cc",
+        "third_party/boringssl/src/ssl/ssl_aead_ctx.cc",
+        "third_party/boringssl/src/ssl/ssl_asn1.cc",
+        "third_party/boringssl/src/ssl/ssl_buffer.cc",
+        "third_party/boringssl/src/ssl/ssl_cert.cc",
+        "third_party/boringssl/src/ssl/ssl_cipher.cc",
+        "third_party/boringssl/src/ssl/ssl_file.cc",
+        "third_party/boringssl/src/ssl/ssl_key_share.cc",
+        "third_party/boringssl/src/ssl/ssl_lib.cc",
+        "third_party/boringssl/src/ssl/ssl_privkey.cc",
+        "third_party/boringssl/src/ssl/ssl_session.cc",
+        "third_party/boringssl/src/ssl/ssl_stat.cc",
+        "third_party/boringssl/src/ssl/ssl_transcript.cc",
+        "third_party/boringssl/src/ssl/ssl_versions.cc",
+        "third_party/boringssl/src/ssl/ssl_x509.cc",
+        "third_party/boringssl/src/ssl/t1_enc.cc",
+        "third_party/boringssl/src/ssl/tls13_both.cc",
+        "third_party/boringssl/src/ssl/tls13_client.cc",
+        "third_party/boringssl/src/ssl/tls13_enc.cc",
+        "third_party/boringssl/src/ssl/tls13_server.cc",
+        "third_party/boringssl/src/ssl/tls_method.cc",
+        "third_party/boringssl/src/ssl/tls_record.cc",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DBORINGSSL_ALLOW_CXX_RUNTIME",
+        "-DBORINGSSL_IMPLEMENTATION",
+        "-DBORINGSSL_NO_STATIC_INITIALIZER",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-DOPENSSL_SMALL",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/boringssl/src/include/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/boringssl:boringssl_asm
+filegroup {
+    name: "cronet_aml_third_party_boringssl_boringssl_asm",
+}
+
+// GN: //third_party/boringssl/src/third_party/fiat:fiat_license
+filegroup {
+    name: "cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
+}
+
+// GN: //third_party/brotli:common
+cc_library_static {
+    name: "cronet_aml_third_party_brotli_common",
+    srcs: [
+        ":cronet_aml_third_party_brotli_headers",
+        "third_party/brotli/common/constants.c",
+        "third_party/brotli/common/context.c",
+        "third_party/brotli/common/dictionary.c",
+        "third_party/brotli/common/platform.c",
+        "third_party/brotli/common/shared_dictionary.c",
+        "third_party/brotli/common/transform.c",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/brotli/include/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/brotli:dec
+cc_library_static {
+    name: "cronet_aml_third_party_brotli_dec",
+    srcs: [
+        ":cronet_aml_third_party_brotli_headers",
+        "third_party/brotli/dec/bit_reader.c",
+        "third_party/brotli/dec/decode.c",
+        "third_party/brotli/dec/huffman.c",
+        "third_party/brotli/dec/state.c",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_brotli_common",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/brotli/include/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/brotli:headers
+filegroup {
+    name: "cronet_aml_third_party_brotli_headers",
+}
+
+// GN: //third_party/icu:icui18n
+cc_library_static {
+    name: "cronet_aml_third_party_icu_icui18n",
+    static_libs: [
+        "cronet_aml_third_party_icu_icuuc_private",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_DLOPEN=0",
+        "-DHAVE_SYS_UIO_H",
+        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
+        "-DUCONFIG_ONLY_HTML_CONVERSION=1",
+        "-DUCONFIG_USE_WINDOWS_LCID_MAPPING_API=0",
+        "-DUSE_CHROMIUM_ICU=1",
+        "-DU_CHARSET_IS_UTF8=1",
+        "-DU_ENABLE_DYLOAD=0",
+        "-DU_ENABLE_RESOURCE_TRACING=0",
+        "-DU_ENABLE_TRACING=1",
+        "-DU_I18N_IMPLEMENTATION",
+        "-DU_STATIC_IMPLEMENTATION",
+        "-DU_USING_ICU_NAMESPACE=0",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/icu/source/common/",
+        "third_party/icu/source/i18n/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/icu:icuuc_private
+cc_library_static {
+    name: "cronet_aml_third_party_icu_icuuc_private",
+    srcs: [
+        ":cronet_aml_third_party_icu_icuuc_public",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_DLOPEN=0",
+        "-DHAVE_SYS_UIO_H",
+        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
+        "-DUCONFIG_ONLY_HTML_CONVERSION=1",
+        "-DUCONFIG_USE_WINDOWS_LCID_MAPPING_API=0",
+        "-DUSE_CHROMIUM_ICU=1",
+        "-DU_CHARSET_IS_UTF8=1",
+        "-DU_COMMON_IMPLEMENTATION",
+        "-DU_ENABLE_DYLOAD=0",
+        "-DU_ENABLE_RESOURCE_TRACING=0",
+        "-DU_ENABLE_TRACING=1",
+        "-DU_ICUDATAENTRY_IN_COMMON",
+        "-DU_STATIC_IMPLEMENTATION",
+        "-DU_USING_ICU_NAMESPACE=0",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/icu/source/common/",
+        "third_party/icu/source/i18n/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/icu:icuuc_public
+filegroup {
+    name: "cronet_aml_third_party_icu_icuuc_public",
+}
+
+// GN: //third_party/ijar:ijar
+cc_binary {
+    name: "cronet_aml_third_party_ijar_ijar",
+    srcs: [
+        ":cronet_aml_buildtools_third_party_libc___libc__",
+        ":cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+        "third_party/ijar/classfile.cc",
+        "third_party/ijar/ijar.cc",
+        "third_party/ijar/mapped_file_unix.cc",
+        "third_party/ijar/platform_utils.cc",
+        "third_party/ijar/zip.cc",
+        "third_party/ijar/zlib_client.cc",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_zlib_zlib",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DLIBCXXABI_SILENT_TERMINATE",
+        "-DLIBCXX_BUILDING_LIBCXXABI",
+        "-DNDEBUG",
+        "-DNVALGRIND",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
+        "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
+        "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_BUILDING_LIBRARY",
+        "-D_LIBCPP_CONSTINIT=constinit",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++/trunk/src/",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/zlib/",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/libevent:libevent
+cc_library_static {
+    name: "cronet_aml_third_party_libevent_libevent",
+    srcs: [
+        "third_party/libevent/buffer.c",
+        "third_party/libevent/epoll.c",
+        "third_party/libevent/evbuffer.c",
+        "third_party/libevent/evdns.c",
+        "third_party/libevent/event.c",
+        "third_party/libevent/event_tagging.c",
+        "third_party/libevent/evrpc.c",
+        "third_party/libevent/evutil.c",
+        "third_party/libevent/http.c",
+        "third_party/libevent/log.c",
+        "third_party/libevent/poll.c",
+        "third_party/libevent/select.c",
+        "third_party/libevent/signal.c",
+        "third_party/libevent/strlcpy.c",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_CONFIG_H",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/libevent/android/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/modp_b64:modp_b64
+cc_library_static {
+    name: "cronet_aml_third_party_modp_b64_modp_b64",
+    srcs: [
+        "third_party/modp_b64/modp_b64.cc",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/protobuf:protobuf_full
+cc_library_static {
+    name: "cronet_aml_third_party_protobuf_protobuf_full",
+    srcs: [
+        "third_party/protobuf/src/google/protobuf/any.cc",
+        "third_party/protobuf/src/google/protobuf/any.pb.cc",
+        "third_party/protobuf/src/google/protobuf/any_lite.cc",
+        "third_party/protobuf/src/google/protobuf/api.pb.cc",
+        "third_party/protobuf/src/google/protobuf/arena.cc",
+        "third_party/protobuf/src/google/protobuf/arenastring.cc",
+        "third_party/protobuf/src/google/protobuf/arenaz_sampler.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/importer.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/parser.cc",
+        "third_party/protobuf/src/google/protobuf/descriptor.cc",
+        "third_party/protobuf/src/google/protobuf/descriptor.pb.cc",
+        "third_party/protobuf/src/google/protobuf/descriptor_database.cc",
+        "third_party/protobuf/src/google/protobuf/duration.pb.cc",
+        "third_party/protobuf/src/google/protobuf/dynamic_message.cc",
+        "third_party/protobuf/src/google/protobuf/empty.pb.cc",
+        "third_party/protobuf/src/google/protobuf/extension_set.cc",
+        "third_party/protobuf/src/google/protobuf/extension_set_heavy.cc",
+        "third_party/protobuf/src/google/protobuf/field_mask.pb.cc",
+        "third_party/protobuf/src/google/protobuf/generated_enum_util.cc",
+        "third_party/protobuf/src/google/protobuf/generated_message_bases.cc",
+        "third_party/protobuf/src/google/protobuf/generated_message_reflection.cc",
+        "third_party/protobuf/src/google/protobuf/generated_message_tctable_full.cc",
+        "third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
+        "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
+        "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
+        "third_party/protobuf/src/google/protobuf/inlined_string_field.cc",
+        "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
+        "third_party/protobuf/src/google/protobuf/io/gzip_stream.cc",
+        "third_party/protobuf/src/google/protobuf/io/io_win32.cc",
+        "third_party/protobuf/src/google/protobuf/io/printer.cc",
+        "third_party/protobuf/src/google/protobuf/io/strtod.cc",
+        "third_party/protobuf/src/google/protobuf/io/tokenizer.cc",
+        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
+        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
+        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
+        "third_party/protobuf/src/google/protobuf/map.cc",
+        "third_party/protobuf/src/google/protobuf/map_field.cc",
+        "third_party/protobuf/src/google/protobuf/message.cc",
+        "third_party/protobuf/src/google/protobuf/message_lite.cc",
+        "third_party/protobuf/src/google/protobuf/parse_context.cc",
+        "third_party/protobuf/src/google/protobuf/reflection_ops.cc",
+        "third_party/protobuf/src/google/protobuf/repeated_field.cc",
+        "third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc",
+        "third_party/protobuf/src/google/protobuf/service.cc",
+        "third_party/protobuf/src/google/protobuf/source_context.pb.cc",
+        "third_party/protobuf/src/google/protobuf/struct.pb.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/common.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/status.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/substitute.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/time.cc",
+        "third_party/protobuf/src/google/protobuf/text_format.cc",
+        "third_party/protobuf/src/google/protobuf/timestamp.pb.cc",
+        "third_party/protobuf/src/google/protobuf/type.pb.cc",
+        "third_party/protobuf/src/google/protobuf/unknown_field_set.cc",
+        "third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc",
+        "third_party/protobuf/src/google/protobuf/util/field_comparator.cc",
+        "third_party/protobuf/src/google/protobuf/util/field_mask_util.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/error_listener.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/json_escaping.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/object_writer.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/proto_writer.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/type_info.cc",
+        "third_party/protobuf/src/google/protobuf/util/internal/utility.cc",
+        "third_party/protobuf/src/google/protobuf/util/json_util.cc",
+        "third_party/protobuf/src/google/protobuf/util/message_differencer.cc",
+        "third_party/protobuf/src/google/protobuf/util/time_util.cc",
+        "third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc",
+        "third_party/protobuf/src/google/protobuf/wire_format.cc",
+        "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
+        "third_party/protobuf/src/google/protobuf/wrappers.pb.cc",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_zlib_zlib",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_ZLIB",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
+        "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
+        "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "third_party/zlib/",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/protobuf:protobuf_lite
+cc_library_static {
+    name: "cronet_aml_third_party_protobuf_protobuf_lite",
+    srcs: [
+        "third_party/protobuf/src/google/protobuf/any_lite.cc",
+        "third_party/protobuf/src/google/protobuf/arena.cc",
+        "third_party/protobuf/src/google/protobuf/arenastring.cc",
+        "third_party/protobuf/src/google/protobuf/arenaz_sampler.cc",
+        "third_party/protobuf/src/google/protobuf/extension_set.cc",
+        "third_party/protobuf/src/google/protobuf/generated_enum_util.cc",
+        "third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
+        "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
+        "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
+        "third_party/protobuf/src/google/protobuf/inlined_string_field.cc",
+        "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
+        "third_party/protobuf/src/google/protobuf/io/io_win32.cc",
+        "third_party/protobuf/src/google/protobuf/io/strtod.cc",
+        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
+        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
+        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
+        "third_party/protobuf/src/google/protobuf/map.cc",
+        "third_party/protobuf/src/google/protobuf/message_lite.cc",
+        "third_party/protobuf/src/google/protobuf/parse_context.cc",
+        "third_party/protobuf/src/google/protobuf/repeated_field.cc",
+        "third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/common.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/status.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
+        "third_party/protobuf/src/google/protobuf/stubs/time.cc",
+        "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
+    ],
+    shared_libs: [
+        "liblog",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DHAVE_SYS_UIO_H",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/protobuf:protoc
+cc_binary {
+    name: "cronet_aml_third_party_protobuf_protoc",
+    srcs: [
+        ":cronet_aml_buildtools_third_party_libc___libc__",
+        ":cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+        "third_party/protobuf/src/google/protobuf/compiler/main.cc",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_protobuf_protoc_lib",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DLIBCXXABI_SILENT_TERMINATE",
+        "-DLIBCXX_BUILDING_LIBCXXABI",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
+        "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
+        "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_BUILDING_LIBRARY",
+        "-D_LIBCPP_CONSTINIT=constinit",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++/trunk/src/",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/protobuf:protoc_lib
+cc_library_static {
+    name: "cronet_aml_third_party_protobuf_protoc_lib",
+    srcs: [
+        "third_party/protobuf/src/google/protobuf/compiler/code_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/command_line_interface.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_context.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_extension.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_extension_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_field_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_service.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/java/java_string_field_lite.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/js/well_known_types_embed.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/php/php_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/plugin.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/python/python_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/python/python_helpers.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/python/python_pyi_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/subprocess.cc",
+        "third_party/protobuf/src/google/protobuf/compiler/zip_writer.cc",
+    ],
+    static_libs: [
+        "cronet_aml_third_party_protobuf_protobuf_full",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_PTHREAD",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
+        "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
+        "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/protobuf/src/",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/zlib:zlib
+cc_library_static {
+    name: "cronet_aml_third_party_zlib_zlib",
+    srcs: [
+        ":cronet_aml_third_party_zlib_zlib_adler32_simd",
+        ":cronet_aml_third_party_zlib_zlib_common_headers",
+        ":cronet_aml_third_party_zlib_zlib_crc32_simd",
+        ":cronet_aml_third_party_zlib_zlib_inflate_chunk_simd",
+        ":cronet_aml_third_party_zlib_zlib_slide_hash_simd",
+        "third_party/zlib/adler32.c",
+        "third_party/zlib/compress.c",
+        "third_party/zlib/cpu_features.c",
+        "third_party/zlib/crc32.c",
+        "third_party/zlib/deflate.c",
+        "third_party/zlib/gzclose.c",
+        "third_party/zlib/gzlib.c",
+        "third_party/zlib/gzread.c",
+        "third_party/zlib/gzwrite.c",
+        "third_party/zlib/infback.c",
+        "third_party/zlib/inffast.c",
+        "third_party/zlib/inftrees.c",
+        "third_party/zlib/trees.c",
+        "third_party/zlib/uncompr.c",
+        "third_party/zlib/zutil.c",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DADLER32_SIMD_SSSE3",
+        "-DCRC32_SIMD_SSE42_PCLMUL",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDEFLATE_SLIDE_HASH_SSE2",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DINFLATE_CHUNK_READ_64LE",
+        "-DINFLATE_CHUNK_SIMD_SSE2",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
+        "-DX86_NOT_WINDOWS",
+        "-DZLIB_DEBUG",
+        "-DZLIB_IMPLEMENTATION",
+        "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
+        "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/zlib/",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //third_party/zlib:zlib_adler32_simd
+filegroup {
+    name: "cronet_aml_third_party_zlib_zlib_adler32_simd",
+    srcs: [
+        "third_party/zlib/adler32_simd.c",
+    ],
+}
+
+// GN: //third_party/zlib:zlib_common_headers
+filegroup {
+    name: "cronet_aml_third_party_zlib_zlib_common_headers",
+}
+
+// GN: //third_party/zlib:zlib_crc32_simd
+filegroup {
+    name: "cronet_aml_third_party_zlib_zlib_crc32_simd",
+    srcs: [
+        "third_party/zlib/crc32_simd.c",
+        "third_party/zlib/crc_folding.c",
+    ],
+}
+
+// GN: //third_party/zlib:zlib_inflate_chunk_simd
+filegroup {
+    name: "cronet_aml_third_party_zlib_zlib_inflate_chunk_simd",
+    srcs: [
+        "third_party/zlib/contrib/optimizations/inffast_chunk.c",
+        "third_party/zlib/contrib/optimizations/inflate.c",
+    ],
+}
+
+// GN: //third_party/zlib:zlib_slide_hash_simd
+filegroup {
+    name: "cronet_aml_third_party_zlib_zlib_slide_hash_simd",
+}
+
+// GN: //tools/android/errorprone_plugin:errorprone_plugin__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_binary " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location third_party/android_deps/com_google_auto_service_auto_service_annotations_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_annotation_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_check_api_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_error_prone_core_java.build_config.json)\", \"$(location third_party/android_deps/com_google_errorprone_javac_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/tools/android/errorprone_plugin/errorprone_plugin.build_config.json " +
+         "--gn-target " +
+         "//tools/android/errorprone_plugin:errorprone_plugin " +
+         "--host-jar-path " +
+         "$(location lib.java/tools/android/errorprone_plugin/errorprone_plugin.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location tools/android/errorprone_plugin/errorprone_plugin.javac.jar) " +
+         "--interface-jar-path " +
+         "$(location tools/android/errorprone_plugin/errorprone_plugin.turbine.jar) " +
+         "--annotation-processor-configs " +
+         "[\"gen/third_party/android_deps/auto_service_processor.build_config.json\"] " +
+         "--java-sources-file " +
+         "gen/tools/android/errorprone_plugin/errorprone_plugin.sources " +
+         "--bundled-srcjars " +
+         "[] " +
+         "--main-class " +
+         "<ignore>",
+    out: [
+        "tools/android/errorprone_plugin/errorprone_plugin.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //tools/android/errorprone_plugin:errorprone_plugin__compile_java
+genrule {
+    name: "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__compile_java",
+    srcs: [
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/AndroidNullableCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoAndroidAsyncTaskCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoDynamicStringsInTraceEventCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoRedundantFieldInitCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoSynchronizedMethodCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoSynchronizedThisCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/TestClassNameCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/UseNetworkAnnotations.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/tools/android/errorprone_plugin/errorprone_plugin__compile_java.d " +
+         "--generated-dir " +
+         "gen/tools/android/errorprone_plugin/errorprone_plugin/generated_java " +
+         "--jar-path " +
+         "obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar " +
+         "--java-srcjars " +
+         "[\"gen/tools/android/errorprone_plugin/errorprone_plugin.generated.srcjar\"] " +
+         "--target-name " +
+         "//tools/android/errorprone_plugin:errorprone_plugin__compile_java " +
+         "--header-jar " +
+         "obj/tools/android/errorprone_plugin/errorprone_plugin.turbine.jar " +
+         "--classpath " +
+         "[\"obj/tools/android/errorprone_plugin/errorprone_plugin.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "@gen/tools/android/errorprone_plugin/errorprone_plugin.sources",
+    out: [
+        "//out/test/obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar",
+        "//out/test/obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar.info",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json",
+        "out/test/gen/tools/android/errorprone_plugin/errorprone_plugin.generated.srcjar",
+        "out/test/gen/tools/android/errorprone_plugin/errorprone_plugin.sources",
+        "out/test/obj/tools/android/errorprone_plugin/errorprone_plugin.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //tools/android/errorprone_plugin:errorprone_plugin__header
+genrule {
+    name: "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__header",
+    srcs: [
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/AndroidNullableCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoAndroidAsyncTaskCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoDynamicStringsInTraceEventCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoRedundantFieldInitCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoSynchronizedMethodCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoSynchronizedThisCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/TestClassNameCheck.java",
+        "tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/UseNetworkAnnotations.java",
+    ],
+    cmd: "$(location build/android/gyp/turbine.py) --depfile " +
+         "gen/tools/android/errorprone_plugin/errorprone_plugin__header.d " +
+         "--generated-dir " +
+         "gen/tools/android/errorprone_plugin/errorprone_plugin/generated_java " +
+         "--jar-path " +
+         "obj/tools/android/errorprone_plugin/errorprone_plugin.turbine.jar " +
+         "--java-srcjars " +
+         "[] " +
+         "--target-name " +
+         "//tools/android/errorprone_plugin:errorprone_plugin__header " +
+         "--classpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:javac:interface_classpath) " +
+         "--processorpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:javac:processor_classpath) " +
+         "--processors " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:javac:processor_classes) " +
+         "--turbine-jar-path " +
+         "../../third_party/turbine/turbine.jar " +
+         "--generated-jar-path " +
+         "gen/tools/android/errorprone_plugin/errorprone_plugin.generated.srcjar " +
+         "--chromium-code " +
+         "1 " +
+         "@gen/tools/android/errorprone_plugin/errorprone_plugin.sources",
+    out: [
+        "//out/test/obj/tools/android/errorprone_plugin/errorprone_plugin.turbine.jar",
+        "tools/android/errorprone_plugin/errorprone_plugin.generated.srcjar",
+    ],
+    tool_files: [
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/turbine.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "out/test/gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json",
+        "out/test/gen/tools/android/errorprone_plugin/errorprone_plugin.sources",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "third_party/turbine/turbine.jar",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //tools/android/errorprone_plugin:errorprone_plugin__host
+genrule {
+    name: "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__host",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar " +
+         "--output " +
+         "lib.java/tools/android/errorprone_plugin/errorprone_plugin.jar " +
+         "--exclude-globs " +
+         "[] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/lib.java/tools/android/errorprone_plugin/errorprone_plugin.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar",
+    ],
+}
+
+// GN: //tools/android/errorprone_plugin:errorprone_plugin__java_binary_script
+genrule {
+    name: "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__java_binary_script",
+    cmd: "$(location build/android/gyp/create_java_binary_script.py) --output " +
+         "bin/bin/helper/errorprone_plugin " +
+         "--main-class " +
+         "<ignore> " +
+         "--classpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:deps_info:host_classpath) " +
+         "--noverify",
+    out: [
+        "//out/test/bin/bin/helper/errorprone_plugin",
+    ],
+    tool_files: [
+        "build/android/gyp/create_java_binary_script.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json",
+    ],
+}
+
+// GN: //tools/grit:grit_sources
+genrule {
+    name: "cronet_aml_tools_grit_grit_sources",
+    cmd: "$(location tools/grit/stamp_grit_sources.py) ../../tools/grit " +
+         "obj/tools/grit/grit_sources.script.stamp " +
+         "obj/tools/grit/grit_sources.d",
+    out: [
+        "//out/test/obj/tools/grit/grit_sources.script.stamp",
+    ],
+    tool_files: [
+        "tools/grit/grit.py",
+        "tools/grit/stamp_grit_sources.py",
+    ],
+}
+
+// GN: //tools/gritsettings:default_resource_ids
+genrule {
+    name: "cronet_aml_tools_gritsettings_default_resource_ids",
+    cmd: "$(location tools/grit/grit.py) update_resource_ids " +
+         "-o " +
+         "gen/tools/gritsettings/default_resource_ids " +
+         "--add-header " +
+         "--depfile " +
+         "gen/tools/gritsettings/default_resource_ids.d " +
+         "--input " +
+         "../../tools/gritsettings/resource_ids.spec",
+    out: [
+        "tools/gritsettings/default_resource_ids",
+    ],
+    tool_files: [
+        "tools/grit/grit.py",
+        "tools/gritsettings/resource_ids.spec",
+    ],
+}
+
+// GN: //url:buildflags
+genrule {
+    name: "cronet_aml_url_buildflags",
+    cmd: "echo '--flags USE_PLATFORM_ICU_ALTERNATIVES=\"true\"' | " +
+         "$(location build/write_buildflag_header.py) --output " +
+         "$(out) " +
+         "--rulename " +
+         "//url:buildflags " +
+         "--gen-dir " +
+         ". " +
+         "--definitions " +
+         "/dev/stdin",
+    out: [
+        "url/buildflags.h",
+    ],
+    tool_files: [
+        "build/write_buildflag_header.py",
+    ],
+}
+
+// GN: //url:url
+cc_library_static {
+    name: "cronet_aml_url_url",
+    srcs: [
+        ":cronet_aml_ipc_param_traits",
+        "url/gurl.cc",
+        "url/origin.cc",
+        "url/scheme_host_port.cc",
+        "url/third_party/mozilla/url_parse.cc",
+        "url/url_canon.cc",
+        "url/url_canon_etc.cc",
+        "url/url_canon_filesystemurl.cc",
+        "url/url_canon_fileurl.cc",
+        "url/url_canon_host.cc",
+        "url/url_canon_internal.cc",
+        "url/url_canon_ip.cc",
+        "url/url_canon_mailtourl.cc",
+        "url/url_canon_path.cc",
+        "url/url_canon_pathurl.cc",
+        "url/url_canon_query.cc",
+        "url/url_canon_relative.cc",
+        "url/url_canon_stdstring.cc",
+        "url/url_canon_stdurl.cc",
+        "url/url_constants.cc",
+        "url/url_idna_icu_alternatives_android.cc",
+        "url/url_parse_file.cc",
+        "url/url_util.cc",
+    ],
+    shared_libs: [
+        "libandroid",
+        "liblog",
+    ],
+    static_libs: [
+        "cronet_aml_base_base",
+        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+    ],
+    generated_headers: [
+        "cronet_aml_base_debugging_buildflags",
+        "cronet_aml_base_jni_java__build_config_crbug_908819",
+        "cronet_aml_base_jni_java__compile_java",
+        "cronet_aml_base_jni_java__errorprone",
+        "cronet_aml_base_jni_java__header",
+        "cronet_aml_base_jni_java__host",
+        "cronet_aml_base_jni_java__validate",
+        "cronet_aml_base_logging_buildflags",
+        "cronet_aml_build_android_build_config_gen",
+        "cronet_aml_build_android_build_java__build_config_crbug_908819",
+        "cronet_aml_build_android_build_java__compile_java",
+        "cronet_aml_build_android_build_java__errorprone",
+        "cronet_aml_build_android_build_java__header",
+        "cronet_aml_build_android_build_java__host",
+        "cronet_aml_build_android_build_java__process_device",
+        "cronet_aml_build_android_build_java__validate",
+        "cronet_aml_build_android_bytecode_bytecode_processor__build_config_crbug_908819",
+        "cronet_aml_build_android_bytecode_bytecode_processor__java_binary_script",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__build_config_crbug_908819",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__compile_java",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__errorprone",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__header",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__host",
+        "cronet_aml_build_android_native_libraries_gen",
+        "cronet_aml_build_chromeos_buildflags",
+        "cronet_aml_third_party_android_deps_auto_service_processor__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__header",
+        "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__host",
+        "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__header",
+        "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__header",
+        "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__header",
+        "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__host",
+        "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__header",
+        "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__host",
+        "cronet_aml_third_party_android_deps_com_google_guava_guava_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_guava_guava_java__header",
+        "cronet_aml_third_party_android_deps_com_google_guava_guava_java__host",
+        "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__header",
+        "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__host",
+        "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__header",
+        "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__host",
+        "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__header",
+        "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__host",
+        "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__header",
+        "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__host",
+        "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__header",
+        "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__host",
+        "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__header",
+        "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__host",
+        "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__header",
+        "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__host",
+        "cronet_aml_third_party_android_sdk_android_sdk_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_sdk_android_sdk_java__header",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__build_config_crbug_908819",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__compile_java",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__header",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__host",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__java_binary_script",
+        "cronet_aml_url_buildflags",
+        "cronet_aml_url_url_java__build_config_crbug_908819",
+        "cronet_aml_url_url_java__compile_java",
+        "cronet_aml_url_url_java__errorprone",
+        "cronet_aml_url_url_java__header",
+        "cronet_aml_url_url_java__process_device",
+        "cronet_aml_url_url_jni_headers",
+    ],
+    export_generated_headers: [
+        "cronet_aml_base_debugging_buildflags",
+        "cronet_aml_base_jni_java__build_config_crbug_908819",
+        "cronet_aml_base_jni_java__compile_java",
+        "cronet_aml_base_jni_java__errorprone",
+        "cronet_aml_base_jni_java__header",
+        "cronet_aml_base_jni_java__host",
+        "cronet_aml_base_jni_java__validate",
+        "cronet_aml_base_logging_buildflags",
+        "cronet_aml_build_android_build_config_gen",
+        "cronet_aml_build_android_build_java__build_config_crbug_908819",
+        "cronet_aml_build_android_build_java__compile_java",
+        "cronet_aml_build_android_build_java__errorprone",
+        "cronet_aml_build_android_build_java__header",
+        "cronet_aml_build_android_build_java__host",
+        "cronet_aml_build_android_build_java__process_device",
+        "cronet_aml_build_android_build_java__validate",
+        "cronet_aml_build_android_bytecode_bytecode_processor__build_config_crbug_908819",
+        "cronet_aml_build_android_bytecode_bytecode_processor__java_binary_script",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__build_config_crbug_908819",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__compile_java",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__errorprone",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__header",
+        "cronet_aml_build_android_bytecode_bytecode_processor_java__host",
+        "cronet_aml_build_android_native_libraries_gen",
+        "cronet_aml_build_chromeos_buildflags",
+        "cronet_aml_third_party_android_deps_auto_service_processor__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__header",
+        "cronet_aml_third_party_android_deps_com_github_ben_manes_caffeine_caffeine_java__host",
+        "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__header",
+        "cronet_aml_third_party_android_deps_com_github_kevinstern_software_and_algorithms_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__header",
+        "cronet_aml_third_party_android_deps_com_google_auto_auto_common_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_service_auto_service_java__host",
+        "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_auto_value_auto_value_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__header",
+        "cronet_aml_third_party_android_deps_com_google_code_findbugs_jsr305_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotation_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_check_api_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_core_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_error_prone_type_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__header",
+        "cronet_aml_third_party_android_deps_com_google_errorprone_javac_java__host",
+        "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__header",
+        "cronet_aml_third_party_android_deps_com_google_guava_failureaccess_java__host",
+        "cronet_aml_third_party_android_deps_com_google_guava_guava_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_guava_guava_java__header",
+        "cronet_aml_third_party_android_deps_com_google_guava_guava_java__host",
+        "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__header",
+        "cronet_aml_third_party_android_deps_com_google_guava_listenablefuture_java__host",
+        "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__header",
+        "cronet_aml_third_party_android_deps_com_google_j2objc_j2objc_annotations_java__host",
+        "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__header",
+        "cronet_aml_third_party_android_deps_com_google_protobuf_protobuf_java_java__host",
+        "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__header",
+        "cronet_aml_third_party_android_deps_io_github_java_diff_utils_java_diff_utils_java__host",
+        "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__header",
+        "cronet_aml_third_party_android_deps_org_checkerframework_checker_qual_java__host",
+        "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__header",
+        "cronet_aml_third_party_android_deps_org_checkerframework_dataflow_errorprone_java__host",
+        "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__header",
+        "cronet_aml_third_party_android_deps_org_eclipse_jgit_org_eclipse_jgit_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_analysis_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_tree_java__host",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__header",
+        "cronet_aml_third_party_android_deps_org_ow2_asm_asm_util_java__host",
+        "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__header",
+        "cronet_aml_third_party_android_deps_org_pcollections_pcollections_java__host",
+        "cronet_aml_third_party_android_sdk_android_sdk_java__build_config_crbug_908819",
+        "cronet_aml_third_party_android_sdk_android_sdk_java__header",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__build_config_crbug_908819",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__compile_java",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__header",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__host",
+        "cronet_aml_tools_android_errorprone_plugin_errorprone_plugin__java_binary_script",
+        "cronet_aml_url_buildflags",
+        "cronet_aml_url_url_java__build_config_crbug_908819",
+        "cronet_aml_url_url_java__compile_java",
+        "cronet_aml_url_url_java__errorprone",
+        "cronet_aml_url_url_java__header",
+        "cronet_aml_url_url_java__process_device",
+        "cronet_aml_url_url_jni_headers",
+    ],
+    defaults: [
+        "cronet_aml_defaults",
+    ],
+    cflags: [
+        "-DANDROID",
+        "-DANDROID_NDK_VERSION_ROLL=r23_1",
+        "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+        "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DDCHECK_ALWAYS_ON=1",
+        "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+        "-DHAVE_SYS_UIO_H",
+        "-DIS_URL_IMPL",
+        "-D_DEBUG",
+        "-D_GNU_SOURCE",
+        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+        "-D__STDC_CONSTANT_MACROS",
+        "-D__STDC_FORMAT_MACROS",
+    ],
+    local_include_dirs: [
+        "./",
+        "buildtools/third_party/libc++/",
+        "buildtools/third_party/libc++/trunk/include",
+        "buildtools/third_party/libc++abi/trunk/include",
+        "third_party/abseil-cpp/",
+        "third_party/boringssl/src/include/",
+        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+    ],
+    header_libs: [
+        "jni_headers",
+    ],
+    cpp_std: "c++20",
+}
+
+// GN: //url:url_java__build_config_crbug_908819
+genrule {
+    name: "cronet_aml_url_url_java__build_config_crbug_908819",
+    cmd: "$(location build/android/gyp/write_build_config.py) --type " +
+         "java_library " +
+         " " +
+         " " +
+         "--deps-configs " +
+         "[\"$(location base/jni_java.build_config.json)\", \"$(location third_party/android_sdk/android_sdk_java.build_config.json)\"] " +
+         "--public-deps-configs " +
+         "[] " +
+         "--build-config " +
+         "$(genDir)/url/url_java.build_config.json " +
+         "--gn-target " +
+         "//url:url_java " +
+         "--device-jar-path " +
+         "$(location url/url_java.processed.jar) " +
+         "--host-jar-path " +
+         "$(location lib.java/url/url_java.jar) " +
+         "--unprocessed-jar-path " +
+         "$(location url/url_java.javac.jar) " +
+         "--interface-jar-path " +
+         "$(location url/url_java.turbine.jar) " +
+         "--dex-path " +
+         "obj/url/url_java.dex.jar " +
+         "--supports-android " +
+         "--requires-android " +
+         "--java-sources-file " +
+         "gen/url/url_java.sources " +
+         "--bundled-srcjars " +
+         "[]",
+    out: [
+        "url/url_java.build_config.json",
+    ],
+    tool_files: [
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/resource_utils.py",
+        "build/android/gyp/write_build_config.py",
+        "build/gn_helpers.py",
+        "third_party/jinja2/__init__.py",
+        "third_party/jinja2/_compat.py",
+        "third_party/jinja2/_identifier.py",
+        "third_party/jinja2/bccache.py",
+        "third_party/jinja2/compiler.py",
+        "third_party/jinja2/defaults.py",
+        "third_party/jinja2/environment.py",
+        "third_party/jinja2/exceptions.py",
+        "third_party/jinja2/filters.py",
+        "third_party/jinja2/idtracking.py",
+        "third_party/jinja2/lexer.py",
+        "third_party/jinja2/loaders.py",
+        "third_party/jinja2/nodes.py",
+        "third_party/jinja2/optimizer.py",
+        "third_party/jinja2/parser.py",
+        "third_party/jinja2/runtime.py",
+        "third_party/jinja2/tests.py",
+        "third_party/jinja2/utils.py",
+        "third_party/jinja2/visitor.py",
+        "third_party/markupsafe/__init__.py",
+        "third_party/markupsafe/_compat.py",
+        "third_party/markupsafe/_native.py",
+    ],
+}
+
+// GN: //url:url_java__compile_java
+genrule {
+    name: "cronet_aml_url_url_java__compile_java",
+    srcs: [
+        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/url/url_java__compile_java.d " +
+         "--generated-dir " +
+         "gen/url/url_java/generated_java " +
+         "--jar-path " +
+         "obj/url/url_java.javac.jar " +
+         "--java-srcjars " +
+         "[\"gen/url/url_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//url:url_java__compile_java " +
+         "--classpath " +
+         "@FileArg(gen/url/url_java.build_config.json:android:sdk_interface_jars) " +
+         "--header-jar " +
+         "obj/url/url_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/url/url_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/url/url_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "--jar-info-exclude-globs " +
+         "[\"*/R.class\", \"*/R\\$*.class\", \"*/Manifest.class\", \"*/Manifest\\$*.class\", \"*/GEN_JNI.class\"] " +
+         "@gen/url/url_java.sources",
+    out: [
+        "//out/test/obj/url/url_java.javac.jar",
+        "//out/test/obj/url/url_java.javac.jar.info",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/url/url_java.build_config.json",
+        "out/test/gen/url/url_java.generated.srcjar",
+        "out/test/gen/url/url_java.sources",
+        "out/test/obj/url/url_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //url:url_java__dex
+genrule {
+    name: "cronet_aml_url_url_java__dex",
+    cmd: "$(location build/android/gyp/dex.py) --depfile " +
+         "gen/url/url_java__dex.d " +
+         "--output " +
+         "obj/url/url_java.dex.jar " +
+         "--min-api " +
+         "19 " +
+         "--r8-jar-path " +
+         "../../third_party/r8/lib/r8.jar " +
+         "--custom-d8-jar-path " +
+         "../../third_party/r8/custom_d8.jar " +
+         "--incremental-dir " +
+         "obj/url/url_java__dex " +
+         "--library " +
+         "--class-inputs " +
+         "[\"obj/url/url_java.processed.jar\"] " +
+         "--desugar " +
+         "--desugar-jdk-libs-json " +
+         "../../third_party/r8/desugar_jdk_libs.json " +
+         "--show-desugar-default-interface-warnings " +
+         "--classpath " +
+         "obj/url/url_java.javac.jar " +
+         "--desugar-dependencies " +
+         "gen/url/url_java__dex.desugardeps " +
+         "--bootclasspath " +
+         "@FileArg(gen/url/url_java.build_config.json:android:sdk_jars) " +
+         "--classpath " +
+         "@FileArg(gen/url/url_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--force-enable-assertions",
+    out: [
+        "//out/test/obj/url/url_java.dex.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/dex.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/zipalign.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/obj/url/url_java.javac.jar",
+        "out/test/obj/url/url_java.processed.jar",
+        "third_party/r8/custom_d8.jar",
+        "third_party/r8/d8/lib/r8.jar",
+        "third_party/r8/desugar_jdk_libs.json",
+    ],
+}
+
+// GN: //url:url_java__errorprone
+genrule {
+    name: "cronet_aml_url_url_java__errorprone",
+    srcs: [
+        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
+    ],
+    cmd: "$(location build/android/gyp/compile_java.py) --depfile " +
+         "gen/url/url_java__errorprone.d " +
+         "--generated-dir " +
+         "gen/url/url_java/generated_java " +
+         "--jar-path " +
+         "obj/url/url_java__errorprone.errorprone.stamp " +
+         "--java-srcjars " +
+         "[\"gen/url/url_java.generated.srcjar\"] " +
+         "--target-name " +
+         "//url:url_java__errorprone " +
+         "--classpath " +
+         "@FileArg(gen/url/url_java.build_config.json:android:sdk_interface_jars) " +
+         "--header-jar " +
+         "obj/url/url_java.turbine.jar " +
+         "--classpath " +
+         "[\"obj/url/url_java.turbine.jar\"] " +
+         "--classpath " +
+         "@FileArg(gen/url/url_java.build_config.json:deps_info:javac_full_interface_classpath) " +
+         "--chromium-code " +
+         "1 " +
+         "--jar-info-exclude-globs " +
+         "[\"*/R.class\", \"*/R\\$*.class\", \"*/Manifest.class\", \"*/Manifest\\$*.class\", \"*/GEN_JNI.class\"] " +
+         "--processorpath " +
+         "@FileArg(gen/tools/android/errorprone_plugin/errorprone_plugin.build_config.json:deps_info:host_classpath) " +
+         "--enable-errorprone " +
+         "@gen/url/url_java.sources",
+    out: [
+        "//out/test/obj/url/url_java__errorprone.errorprone.stamp",
+    ],
+    tool_files: [
+        "build/android/gyp/compile_java.py",
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/jar_info_utils.py",
+        "build/android/gyp/util/md5_check.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "build/print_python_deps.py",
+        "out/test/gen/url/url_java.build_config.json",
+        "out/test/gen/url/url_java.generated.srcjar",
+        "out/test/gen/url/url_java.sources",
+        "out/test/obj/url/url_java.turbine.jar",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //url:url_java__header
+genrule {
+    name: "cronet_aml_url_url_java__header",
+    srcs: [
+        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
+    ],
+    cmd: "$(location build/android/gyp/turbine.py) --depfile " +
+         "gen/url/url_java__header.d " +
+         "--generated-dir " +
+         "gen/url/url_java/generated_java " +
+         "--jar-path " +
+         "obj/url/url_java.turbine.jar " +
+         "--java-srcjars " +
+         "[] " +
+         "--target-name " +
+         "//url:url_java__header " +
+         "--classpath " +
+         "@FileArg(gen/url/url_java.build_config.json:android:sdk_interface_jars) " +
+         "--classpath " +
+         "@FileArg(gen/url/url_java.build_config.json:javac:interface_classpath) " +
+         "--processorpath " +
+         "@FileArg(gen/url/url_java.build_config.json:javac:processor_classpath) " +
+         "--processors " +
+         "@FileArg(gen/url/url_java.build_config.json:javac:processor_classes) " +
+         "--turbine-jar-path " +
+         "../../third_party/turbine/turbine.jar " +
+         "--generated-jar-path " +
+         "gen/url/url_java.generated.srcjar " +
+         "--chromium-code " +
+         "1 " +
+         "--jar-info-exclude-globs " +
+         "[\"*/R.class\", \"*/R\\$*.class\", \"*/Manifest.class\", \"*/Manifest\\$*.class\", \"*/GEN_JNI.class\"] " +
+         "@gen/url/url_java.sources",
+    out: [
+        "//out/test/obj/url/url_java.turbine.jar",
+        "url/url_java.generated.srcjar",
+    ],
+    tool_files: [
+        "build/android/gyp/javac_output_processor.py",
+        "build/android/gyp/turbine.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/list_java_targets.py",
+        "build/android/pylib/__init__.py",
+        "build/android/pylib/constants/__init__.py",
+        "build/gn_helpers.py",
+        "out/test/gen/url/url_java.build_config.json",
+        "out/test/gen/url/url_java.sources",
+        "third_party/catapult/devil/devil/__init__.py",
+        "third_party/catapult/devil/devil/android/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/__init__.py",
+        "third_party/catapult/devil/devil/android/constants/chrome.py",
+        "third_party/catapult/devil/devil/android/sdk/__init__.py",
+        "third_party/catapult/devil/devil/android/sdk/keyevent.py",
+        "third_party/catapult/devil/devil/android/sdk/version_codes.py",
+        "third_party/catapult/devil/devil/constants/__init__.py",
+        "third_party/catapult/devil/devil/constants/exit_codes.py",
+        "third_party/colorama/src/colorama/__init__.py",
+        "third_party/colorama/src/colorama/ansi.py",
+        "third_party/colorama/src/colorama/ansitowin32.py",
+        "third_party/colorama/src/colorama/initialise.py",
+        "third_party/colorama/src/colorama/win32.py",
+        "third_party/colorama/src/colorama/winterm.py",
+        "third_party/turbine/turbine.jar",
+        "tools/android/modularization/convenience/lookup_dep.py",
+    ],
+}
+
+// GN: //url:url_java__process_device
+genrule {
+    name: "cronet_aml_url_url_java__process_device",
+    cmd: "$(location build/android/gyp/filter_zip.py) --input " +
+         "obj/url/url_java.javac.jar " +
+         "--output " +
+         "obj/url/url_java.processed.jar " +
+         "--exclude-globs " +
+         "[\"*/R.class\", \"*/R\\$*.class\", \"*/Manifest.class\", \"*/Manifest\\$*.class\", \"*/GEN_JNI.class\"] " +
+         "--include-globs " +
+         "[]",
+    out: [
+        "//out/test/obj/url/url_java.processed.jar",
+    ],
+    tool_files: [
+        "build/android/gyp/filter_zip.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+        "out/test/obj/url/url_java.javac.jar",
+    ],
+}
+
+// GN: //url:url_java__validate
+genrule {
+    name: "cronet_aml_url_url_java__validate",
+    cmd: "$(location build/android/gyp/bytecode_processor.py) --target-name " +
+         "//url:url_java__validate " +
+         "--script " +
+         "bin/helper/bytecode_processor " +
+         "--gn-target " +
+         "//url:url_java " +
+         "--input-jar " +
+         "obj/url/url_java.javac.jar " +
+         "--stamp " +
+         "obj/url/url_java__validate.bytecode.stamp " +
+         "--direct-classpath-jars " +
+         "@FileArg(gen/url/url_java.build_config.json:javac:classpath) " +
+         "--full-classpath-jars " +
+         "@FileArg(gen/url/url_java.build_config.json:deps_info:javac_full_classpath) " +
+         "--full-classpath-gn-targets " +
+         "@FileArg(gen/url/url_java.build_config.json:deps_info:javac_full_classpath_targets) " +
+         "--sdk-classpath-jars " +
+         "@FileArg(gen/url/url_java.build_config.json:android:sdk_jars)",
+    out: [
+        "//out/test/obj/url/url_java__validate.bytecode.stamp",
+    ],
+    tool_files: [
+        "build/android/gyp/bytecode_processor.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/android/gyp/util/server_utils.py",
+        "build/gn_helpers.py",
+        "out/test/bin/helper/bytecode_processor",
+        "out/test/gen/url/url_java.build_config.json",
+        "out/test/obj/url/url_java.javac.jar",
+    ],
+}
+
+// GN: //url:url_jni_headers
+genrule {
+    name: "cronet_aml_url_url_jni_headers",
+    srcs: [
+        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
+        "url/android/java/src/org/chromium/url/Origin.java",
+    ],
+    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+         "long " +
+         " " +
+         " " +
+         "--output_dir " +
+         "$(genDir)/url/url_jni_headers " +
+         "--includes " +
+         "base/android/jni_generator/jni_generator_helper.h " +
+         "--use_proxy_hash " +
+         "--output_name " +
+         "IDNStringUtil_jni.h " +
+         "--output_name " +
+         "Origin_jni.h " +
+         "--input_file " +
+         "$(location url/android/java/src/org/chromium/url/IDNStringUtil.java) " +
+         "--input_file " +
+         "$(location url/android/java/src/org/chromium/url/Origin.java)",
+    out: [
+        "url/url_jni_headers/IDNStringUtil_jni.h",
+        "url/url_jni_headers/Origin_jni.h",
+    ],
+    tool_files: [
+        "base/android/jni_generator/jni_generator.py",
+        "build/android/gyp/util/__init__.py",
+        "build/android/gyp/util/build_utils.py",
+        "build/gn_helpers.py",
+    ],
+}
+
diff --git a/tools/gn2bp/desc.json b/tools/gn2bp/desc.json
new file mode 100644
index 0000000..0c51c3c
--- /dev/null
+++ b/tools/gn2bp/desc.json
Binary files differ
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index cacb051..97eeb4d 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -28,6 +28,7 @@
 import argparse
 import collections
 import json
+import logging as log
 import os
 import re
 import sys
@@ -98,9 +99,6 @@
 # Compiler flags which are passed through to the blueprint.
 cflag_allowlist = r'^-DPERFETTO.*$'
 
-# Compiler defines which are passed through to the blueprint.
-define_allowlist = r'^(GOOGLE_PROTO.*)|(ZLIB_.*)|(USE_MMAP)|(HAVE_HIDDEN)$'
-
 # Additional arguments to apply to Android.bp rules.
 additional_args = {
     # TODO: remove if this is not useful for the cronet build.
@@ -338,13 +336,14 @@
     self.defaults = set()
     self.cflags = set()
     self.include_dirs = set()
-    self.local_include_dirs = set()
+    self.local_include_dirs = []
     self.header_libs = set()
     self.required = set()
-    self.tool_files = None
+    self.tool_files = set()
     self.android = Target('android')
     self.host = Target('host')
     self.stl = None
+    self.cpp_std = None
     self.dist = dict()
     self.strip = dict()
     self.data = set()
@@ -356,6 +355,7 @@
     self.genrule_headers = set()
     self.genrule_srcs = set()
     self.genrule_shared_libs = set()
+    self.genrule_header_libs = set()
     self.version_script = None
     self.test_suites = set()
     self.test_config = None
@@ -385,7 +385,7 @@
     self._output_field(output, 'defaults')
     self._output_field(output, 'cflags')
     self._output_field(output, 'include_dirs')
-    self._output_field(output, 'local_include_dirs')
+    self._output_field(output, 'local_include_dirs', sort=False)
     self._output_field(output, 'header_libs')
     self._output_field(output, 'required')
     self._output_field(output, 'dist')
@@ -393,6 +393,7 @@
     self._output_field(output, 'tool_files')
     self._output_field(output, 'data')
     self._output_field(output, 'stl')
+    self._output_field(output, 'cpp_std')
     self._output_field(output, 'apex_available')
     self._output_field(output, 'min_sdk_version')
     self._output_field(output, 'version_script')
@@ -469,7 +470,7 @@
 
 def is_supported_source_file(name):
   """Returns True if |name| can appear in a 'srcs' list."""
-  return os.path.splitext(name)[1] in ['.c', '.cc', '.proto']
+  return os.path.splitext(name)[1] in ['.c', '.cc', '.java', '.proto']
 
 
 def create_proto_modules(blueprint, gn, target):
@@ -600,9 +601,7 @@
 def create_amalgamated_sql_metrics_module(blueprint, target):
   bp_module_name = label_to_module_name(target.name)
   module = Module('genrule', bp_module_name, target.name)
-  module.tool_files = [
-      'tools/gen_amalgamated_sql_metrics.py',
-  ]
+  module.tool_files.add('tools/gen_amalgamated_sql_metrics.py')
   module.cmd = ' '.join([
       '$(location tools/gen_amalgamated_sql_metrics.py)',
       '--cpp_out=$(out)',
@@ -618,9 +617,7 @@
 def create_cc_proto_descriptor_module(blueprint, target):
   bp_module_name = label_to_module_name(target.name)
   module = Module('genrule', bp_module_name, target.name)
-  module.tool_files = [
-      'tools/gen_cc_proto_descriptor.py',
-  ]
+  module.tool_files.add('tools/gen_cc_proto_descriptor.py')
   module.cmd = ' '.join([
       '$(location tools/gen_cc_proto_descriptor.py)', '--gen_dir=$(genDir)',
       '--cpp_out=$(out)', '$(in)'
@@ -641,7 +638,7 @@
   module = Module('genrule', bp_module_name, gn_utils.GEN_VERSION_TARGET)
   script_path = gn_utils.label_to_path(target.script)
   module.genrule_headers.add(bp_module_name)
-  module.tool_files = [script_path]
+  module.tool_files.add(script_path)
   module.out.update(target.outputs)
   module.srcs.update(gn_utils.label_to_path(src) for src in target.inputs)
   module.cmd = ' '.join([
@@ -670,12 +667,170 @@
 
   blueprint.add_module(module)
 
+def create_action_module(blueprint, target):
+  bp_module_name = label_to_module_name(target.name)
+  module = Module('genrule', bp_module_name, target.name)
+
+  # Convert ['--param=value'] to ['--param', 'value'] for consistency.
+  # TODO: we may want to only do this for python scripts arguments. If argparse
+  # is used, this transformation is safe.
+  target.args = [str for it in target.args for str in it.split('=')]
+
+  if target.script == "//build/write_buildflag_header.py":
+    # write_buildflag_header.py writes result to args.genDir/args.output
+    # So, override args.genDir by '.' so that args.output=$(out) works
+    for i, val in enumerate(target.args):
+      if val == '--gen-dir':
+        target.args[i + 1] = '.'
+      elif val == '--output':
+        target.args[i + 1] = '$(out)'
+
+  elif target.script == '//build/write_build_date_header.py':
+    target.args[0] = '$(out)'
+
+  elif target.script == '//base/android/jni_generator/jni_generator.py':
+    # chromium builds against a prebuilt ndk that contains the jni_headers, so
+    # a dependency is never explicitly created.
+    module.genrule_header_libs.add('jni_headers')
+    needs_javap = False
+    for i, val in enumerate(target.args):
+      if val == '--output_dir':
+        # replace --output_dir gen/jni_headers/... with --output_dir $(genDir)/...
+        target.args[i + 1] = re.sub('^gen/jni_headers', '$(genDir)', target.args[i + 1])
+      elif val == '--input_file':
+        # --input_file supports both .class specifiers or source files as arguments.
+        # Only source files need to be wrapped inside a $(location <label>) tag.
+        if re.match('.*\.class$', target.args[i + 1]):
+          continue
+        # replace --input_file ../../... with --input_file $(location ...)
+        # TODO: put inside function
+        filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
+        target.args[i + 1] = '$(location %s)' % filename
+      elif val == '--includes' and 'jni_generator_helper' in target.args[i + 1]:
+        # delete all leading ../
+        target.args[i + 1] = re.sub('^(\.\./)+', '', target.args[i + 1])
+      elif val == '--prev_output_dir':
+        # this is not needed for aosp builds.
+        target.args[i] = ''
+        target.args[i + 1] = ''
+      elif val == '--jar_file':
+        # delete leading ../../ and add path to javap
+        filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
+        target.args[i + 1] = '$(location %s)' % filename
+        needs_javap = True
+
+    if needs_javap:
+      target.args.append('--javap')
+      target.args.append('$$(find out/.path -name javap)')
+    # fix target.output directory to match #include statements.
+    target.outputs = [re.sub('^jni_headers/', '', out) for out in target.outputs]
+
+  elif target.script == '//build/android/gyp/write_build_config.py':
+    for i, val in enumerate(target.args):
+      if val == '--depfile':
+        # Depfile is not used, so no need to generate it.
+        target.args[i] = ''
+        target.args[i + 1] = ''
+      elif val in ['--deps-configs', '--bundled-srcjars']:
+        args = target.args[i + 1]
+        if args == '[]':
+          continue
+        # strip surrounding [] and split by ", "
+        args = args.strip('[]').split(', ')
+        # strip surrounding ""
+        args = [arg.strip('"') for arg in args]
+        # remove leading gen/
+        args = [re.sub('^gen/', '', arg) for arg in args]
+        # wrap filename in \"$(location filename)\"
+        args = ['\"$(location %s)\"' % arg for arg in args]
+        # join args with ", " and wrap in []
+        target.args[i + 1] = '[%s]' % ', '.join(args)
+
+      elif val == '--public-deps-configs':
+        # TODO: implement.
+        pass
+
+      elif val == '--build-config':
+        # json output of this script
+        target.args[i + 1] = re.sub('^gen', '$(genDir)', target.args[i + 1])
+
+      elif val in ['--unprocessed-jar-path', '--interface-jar-path',
+                   '--device-jar-path', '--host-jar-path']:
+        # jar path can be within sources (../../) or output generated by
+        # another genrule (obj/)
+        filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
+        filename = re.sub('^obj/', '', target.args[i + 1])
+        target.args[i + 1] = '$(location %s)' % filename
+
+      elif val == '--proguard-configs':
+        args = target.args[i + 1]
+        if args == '[]':
+          continue
+        # TODO: consider adding helpers to deal with argument lists
+        # strip surrounding [] and split by ", ", then strip surrounding ""
+        args = args.strip('[]').split(', ')
+        args = [arg.strip('"') for arg in args]
+        # remove leading ../../
+        args = [re.sub('^\.\./\.\./', '', arg) for arg in args]
+        # add dependency on proguard config file, so a $(location) wrapper can be used.
+        module.tool_files.update(args)
+        # wrap filename in \"$(location filename)\"
+        args = ['$(location %s)' % arg for arg in args]
+        target.args[i + 1] = '[%s]' % ', '.join(args)
+
+  script = gn_utils.label_to_path(target.script)
+  module.tool_files.add(script)
+
+  # Handle passing parameters via response file by piping them into the script
+  # and reading them from /dev/stdin.
+  response_file = '{{response_file_name}}'
+  use_response_file = response_file in target.args
+  if use_response_file:
+    # Replace {{response_file_contents}} with /dev/stdin
+    target.args = ['/dev/stdin' if it == response_file else it for it in target.args]
+
+  # escape " and \$ in target.args.
+  # once all actions are properly implemented, this may not be necessary anymore.
+  # TODO: is this the right place to do this?
+  target.args = [arg.replace('"', r'\"') for arg in target.args]
+  target.args = [arg.replace(r'\$', r'\\$') for arg in target.args]
+
+  # put all args on a new line for better diffs.
+  NEWLINE = ' " +\n         "'
+  arg_string = NEWLINE.join(target.args)
+  module.cmd = '$(location %s) %s' % (script, arg_string)
+
+  if use_response_file:
+    # Pipe response file contents into script
+    module.cmd = 'echo \'%s\' |%s%s' % (target.response_file_contents, NEWLINE, module.cmd)
+
+  if all(os.path.splitext(it)[1] == '.h' for it in target.outputs):
+    module.genrule_headers.add(bp_module_name)
+
+  # gn treats inputs and sources for actions equally.
+  # soong only supports source files inside srcs, non-source files are added as
+  # tool_files dependency.
+  for it in target.sources or target.inputs:
+    if is_supported_source_file(it):
+      module.srcs.add(gn_utils.label_to_path(it))
+    else:
+      module.tool_files.add(gn_utils.label_to_path(it))
+
+  # Actions using template "action_with_pydeps" also put script inside inputs.
+  # TODO: it might make sense to filter inputs inside GnParser.
+  if script in module.srcs:
+    module.srcs.remove(script)
+
+  module.out.update(target.outputs)
+  blueprint.add_module(module)
+  return module
+
+
 
 def _get_cflags(target):
   cflags = {flag for flag in target.cflags if re.match(cflag_allowlist, flag)}
-  cflags |= set("-D%s" % define
-                for define in target.defines
-                if re.match(define_allowlist, define))
+  # Consider proper allowlist or denylist if needed
+  cflags |= set("-D%s" % define.replace("\"", "\\\"") for define in target.defines)
   return cflags
 
 
@@ -694,6 +849,7 @@
   if bp_module_name in blueprint.modules:
     return blueprint.modules[bp_module_name]
   target = gn.get_target(gn_target_name)
+  log.info('create modules for %s (%s)', target.name, target.type)
 
   name_without_toolchain = gn_utils.label_without_toolchain(target.name)
   if target.type == 'executable':
@@ -727,7 +883,16 @@
         name_without_toolchain == gn_utils.GEN_VERSION_TARGET:
       module = create_gen_version_module(blueprint, target, bp_module_name)
     else:
-      raise Error('Unhandled action: {}'.format(target.name))
+      module = create_action_module(blueprint, target)
+  elif target.type == 'action_foreach':
+    return None
+      # Add basic support for action_foreach
+  elif target.type == 'copy':
+    # TODO: careful now! copy targets are not supported yet, but this will stop
+    # traversing the dependency tree. For //base:base, this is not a big
+    # problem as libicu contains the only copy target which happens to be a
+    # leaf node.
+    return None
   else:
     raise Error('Unknown target %s (%s)' % (target.name, target.type))
 
@@ -739,9 +904,32 @@
       for src in target.sources
       if is_supported_source_file(src))
 
+  local_include_dirs_set = set()
   if target.type in gn_utils.LINKER_UNIT_TYPES:
     module.cflags.update(_get_cflags(target))
-    module.local_include_dirs.update(gn_utils.label_to_path(it) for it in target.include_dirs)
+    # TODO: implement proper cflag parsing.
+    for flag in target.cflags:
+      if '-std=' in flag:
+        module.cpp_std = flag[len('-std='):]
+      if '-isystem' in flag:
+        local_include_dirs_set.add(flag[len('-isystem../../'):])
+
+    # Adding local_include_dirs is necessary due to source_sets / filegroups
+    # which do not properly propagate include directories.
+    # Filter any directory inside //out as a) this directory does not exist for
+    # aosp / soong builds and b) the include directory should already be
+    # configured via library dependency.
+    local_include_dirs_set.update([gn_utils.label_to_path(d)
+                                      for d in target.include_dirs
+                                      if not re.match('^//out/.*', d)])
+    module.local_include_dirs = sorted(list(local_include_dirs_set))
+
+    # Order matters for some targets. For example, base/time/time_exploded_icu.cc
+    # in //base:base needs to have sysroot include after icu/source/common
+    # include. So adding sysroot include at the end.
+    for flag in target.cflags:
+      if '--sysroot' in flag:
+        module.local_include_dirs.append(flag[len('--sysroot=../../'):] + "/usr/include")
 
   module_is_compiled = module.type not in ('genrule', 'filegroup')
   if module_is_compiled:
@@ -783,33 +971,28 @@
   # dep_name is an unmangled GN target name (e.g. //foo:bar(toolchain)).
   all_deps = target.deps | target.source_set_deps | target.transitive_proto_deps
   for dep_name in all_deps:
-    # If the dependency refers to a library which we can replace with an
-    # Android equivalent, stop recursing and patch the dependency in.
-    # Don't recurse into //buildtools, builtin_deps are intercepted at
-    # the //gn:xxx level.
-    if dep_name.startswith('//buildtools'):
-      continue
-
-    # Ignore the dependency on the gen_buildflags genrule. That is run
-    # separately in this generator and the generated file is copied over
-    # into the repo (see usage of |buildflags_dir| in this script).
-    if dep_name.startswith(gn_utils.BUILDFLAGS_TARGET):
-      continue
-
-    dep_module = create_modules_from_target(blueprint, gn, dep_name)
-
-    # For filegroups and genrule, recurse but don't apply the deps.
-    if not module_is_compiled:
-      continue
-
     # |builtin_deps| override GN deps with Android-specific ones. See the
     # config in the top of this file.
     if gn_utils.label_without_toolchain(dep_name) in builtin_deps:
       builtin_deps[gn_utils.label_without_toolchain(dep_name)](module)
       continue
 
-    # Don't recurse in any other //gn dep if not handled by builtin_deps.
-    if dep_name.startswith('//gn:'):
+    dep_module = create_modules_from_target(blueprint, gn, dep_name)
+
+    # TODO: Proper dependency check for genrule.
+    # Currently, only propagating genrule dependencies.
+    # Also, currently, all the dependencies are propagated upwards.
+    # in gn, public_deps should be propagated but deps should not.
+    # Not sure this information is available in the desc.json.
+    # Following rule works for adding android_runtime_jni_headers to base:base.
+    # If this doesn't work for other target, hardcoding for specific target
+    # might be better.
+    if module.type == "genrule" and dep_module.type == "genrule":
+        module.genrule_headers.add(dep_module.name)
+        module.genrule_headers.update(dep_module.genrule_headers)
+
+    # For filegroups and genrule, recurse but don't apply the deps.
+    if not module_is_compiled:
       continue
 
     if dep_module is None:
@@ -824,6 +1007,7 @@
       module.generated_headers.update(dep_module.genrule_headers)
       module.srcs.update(dep_module.genrule_srcs)
       module.shared_libs.update(dep_module.genrule_shared_libs)
+      module.header_libs.update(dep_module.genrule_header_libs)
     elif dep_module.type == 'cc_binary':
       continue  # Ignore executables deps (used by cmdline integration tests).
     else:
@@ -841,12 +1025,15 @@
   defaults = Module('cc_defaults', defaults_module, '//gn:default_deps')
   defaults.cflags = [
       '-Wno-error=return-type',
+      '-Wno-non-virtual-dtor',
+      '-Wno-missing-field-initializers',
       '-Wno-sign-compare',
       '-Wno-sign-promo',
       '-Wno-unused-parameter',
       '-fvisibility=hidden',
       '-O2',
   ]
+  defaults.stl = 'none'
   blueprint.add_module(defaults)
 
   for target in targets:
@@ -873,12 +1060,21 @@
       default=os.path.join(gn_utils.repo_root(), 'Android.bp'),
   )
   parser.add_argument(
+      '-v',
+      '--verbose',
+      help='Print debug logs.',
+      action='store_true',
+  )
+  parser.add_argument(
       'targets',
       nargs=argparse.REMAINDER,
       help='Targets to include in the blueprint (e.g., "//:perfetto_tests")'
   )
   args = parser.parse_args()
 
+  if args.verbose:
+    log.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s', level=log.DEBUG)
+
   with open(args.desc) as f:
     desc = json.load(f)
 
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index 95f677a..686003c 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -39,114 +39,12 @@
 }
 
 
-def _check_command_output(cmd, cwd):
-  try:
-    output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, cwd=cwd)
-  except subprocess.CalledProcessError as e:
-    print(
-        'Command "{}" failed in {}:'.format(' '.join(cmd), cwd),
-        file=sys.stderr)
-    print(e.output.decode(), file=sys.stderr)
-    sys.exit(1)
-  else:
-    return output.decode()
-
-
 def repo_root():
   """Returns an absolute path to the repository root."""
   return os.path.join(
       os.path.realpath(os.path.dirname(__file__)), os.path.pardir)
 
 
-def _tool_path(name, system_buildtools=False):
-  # Pass-through to use name if the caller requests to use the system
-  # toolchain.
-  if system_buildtools:
-    return [name]
-  wrapper = os.path.abspath(
-      os.path.join(repo_root(), 'tools', 'run_buildtools_binary.py'))
-  return ['python3', wrapper, name]
-
-
-def prepare_out_directory(gn_args,
-                          name,
-                          root=repo_root(),
-                          system_buildtools=False):
-  """Creates the JSON build description by running GN.
-
-    Returns (path, desc) where |path| is the location of the output directory
-    and |desc| is the JSON build description.
-    """
-  out = os.path.join(root, 'out', name)
-  try:
-    os.makedirs(out)
-  except OSError as e:
-    if e.errno != errno.EEXIST:
-      raise
-  _check_command_output(
-      _tool_path('gn', system_buildtools) +
-      ['gen', out, '--args=%s' % gn_args],
-      cwd=repo_root())
-  return out
-
-
-def load_build_description(out, system_buildtools=False):
-  """Creates the JSON build description by running GN."""
-  desc = _check_command_output(
-      _tool_path('gn', system_buildtools) +
-      ['desc', out, '--format=json', '--all-toolchains', '//*'],
-      cwd=repo_root())
-  return json.loads(desc)
-
-
-def create_build_description(gn_args, root=repo_root()):
-  """Prepares a GN out directory and loads the build description from it.
-
-    The temporary out directory is automatically deleted.
-    """
-  out = prepare_out_directory(gn_args, 'tmp.gn_utils', root=root)
-  try:
-    return load_build_description(out)
-  finally:
-    shutil.rmtree(out)
-
-
-def build_targets(out, targets, quiet=False, system_buildtools=False):
-  """Runs ninja to build a list of GN targets in the given out directory.
-
-    Compiling these targets is required so that we can include any generated
-    source files in the amalgamated result.
-    """
-  targets = [t.replace('//', '') for t in targets]
-  with open(os.devnull, 'w') as devnull:
-    stdout = devnull if quiet else None
-    cmd = _tool_path('ninja', system_buildtools) + targets
-    subprocess.check_call(cmd, cwd=os.path.abspath(out), stdout=stdout)
-
-
-def compute_source_dependencies(out, system_buildtools=False):
-  """For each source file, computes a set of headers it depends on."""
-  ninja_deps = _check_command_output(
-      _tool_path('ninja', system_buildtools) + ['-t', 'deps'], cwd=out)
-  deps = {}
-  current_source = None
-  for line in ninja_deps.split('\n'):
-    filename = os.path.relpath(os.path.join(out, line.strip()), repo_root())
-    if not line or line[0] != ' ':
-      current_source = None
-      continue
-    elif not current_source:
-      # We're assuming the source file is always listed before the
-      # headers.
-      assert os.path.splitext(line)[1] in ['.c', '.cc', '.cpp', '.S']
-      current_source = filename
-      deps[current_source] = []
-    else:
-      assert current_source
-      deps[current_source].append(filename)
-  return deps
-
-
 def label_to_path(label):
   """Turn a GN output label (e.g., //some_dir/file.cc) into a path."""
   assert label.startswith('//')
@@ -172,115 +70,6 @@
   return name
 
 
-def gen_buildflags(gn_args, target_file):
-  """Generates the perfetto_build_flags.h for the given config.
-
-    target_file: the path, relative to the repo root, where the generated
-        buildflag header will be copied into.
-    """
-  tmp_out = prepare_out_directory(gn_args, 'tmp.gen_buildflags')
-  build_targets(tmp_out, [BUILDFLAGS_TARGET], quiet=True)
-  src = os.path.join(tmp_out, 'gen', 'build_config', 'perfetto_build_flags.h')
-  shutil.copy(src, os.path.join(repo_root(), target_file))
-  shutil.rmtree(tmp_out)
-
-
-def check_or_commit_generated_files(tmp_files, check):
-  """Checks that gen files are unchanged or renames them to the final location
-
-    Takes in input a list of 'xxx.swp' files that have been written.
-    If check == False, it renames xxx.swp -> xxx.
-    If check == True, it just checks that the contents of 'xxx.swp' == 'xxx'.
-    Returns 0 if no diff was detected, 1 otherwise (to be used as exit code).
-    """
-  res = 0
-  for tmp_file in tmp_files:
-    assert (tmp_file.endswith('.swp'))
-    target_file = os.path.relpath(tmp_file[:-4])
-    if check:
-      if not filecmp.cmp(tmp_file, target_file):
-        sys.stderr.write('%s needs to be regenerated\n' % target_file)
-        res = 1
-      os.unlink(tmp_file)
-    else:
-      os.rename(tmp_file, target_file)
-  return res
-
-
-class ODRChecker(object):
-  """Detects ODR violations in linker units
-
-  When we turn GN source sets into Soong & Bazel file groups, there is the risk
-  to create ODR violations by including the same file group into different
-  linker unit (this is because other build systems don't have a concept
-  equivalent to GN's source_set). This class navigates the transitive
-  dependencies (mostly static libraries) of a target and detects if multiple
-  paths end up including the same file group. This is to avoid situations like:
-
-  traced.exe -> base(file group)
-  traced.exe -> libperfetto(static lib) -> base(file group)
-  """
-
-  def __init__(self, gn, target_name):
-    self.gn = gn
-    self.root = gn.get_target(target_name)
-    self.source_sets = collections.defaultdict(set)
-    self.deps_visited = set()
-    self.source_set_hdr_only = {}
-
-    self._visit(target_name)
-    num_violations = 0
-    if target_name in ODR_VIOLATION_IGNORE_TARGETS:
-      return
-    for sset, paths in self.source_sets.items():
-      if self.is_header_only(sset):
-        continue
-      if len(paths) != 1:
-        num_violations += 1
-        print(
-            'ODR violation in target %s, multiple paths include %s:\n  %s' %
-            (target_name, sset, '\n  '.join(paths)),
-            file=sys.stderr)
-    if num_violations > 0:
-      raise Exception('%d ODR violations detected. Build generation aborted' %
-                      num_violations)
-
-  def _visit(self, target_name, parent_path=''):
-    target = self.gn.get_target(target_name)
-    path = ((parent_path + ' > ') if parent_path else '') + target_name
-    if not target:
-      raise Exception('Cannot find target %s' % target_name)
-    for ssdep in target.source_set_deps:
-      name_and_path = '%s (via %s)' % (target_name, path)
-      self.source_sets[ssdep].add(name_and_path)
-    deps = set(target.deps).union(
-        target.transitive_proto_deps) - self.deps_visited
-    for dep_name in deps:
-      dep = self.gn.get_target(dep_name)
-      if dep.type == 'executable':
-        continue  # Execs are strong boundaries and don't cause ODR violations.
-      # static_library dependencies should reset the path. It doesn't matter if
-      # we get to a source file via:
-      # source_set1 > static_lib > source.cc OR
-      # source_set1 > source_set2 > static_lib > source.cc
-      # This is NOT an ODR violation because source.cc is linked from the same
-      # static library
-      next_parent_path = path if dep.type != 'static_library' else ''
-      self.deps_visited.add(dep_name)
-      self._visit(dep_name, next_parent_path)
-
-  def is_header_only(self, source_set_name):
-    cached = self.source_set_hdr_only.get(source_set_name)
-    if cached is not None:
-      return cached
-    target = self.gn.get_target(source_set_name)
-    if target.type != 'source_set':
-      raise TypeError('%s is not a source_set' % source_set_name)
-    res = all(src.endswith('.h') for src in target.sources)
-    self.source_set_hdr_only[source_set_name] = res
-    return res
-
-
 class GnParser(object):
   """A parser with some cleverness for GN json desc files
 
@@ -309,7 +98,7 @@
       self.name = name  # e.g. //src/ipc:ipc
 
       VALID_TYPES = ('static_library', 'shared_library', 'executable', 'group',
-                     'action', 'source_set', 'proto_library')
+                     'action', 'source_set', 'proto_library', 'copy', 'action_foreach')
       assert (type in VALID_TYPES)
       self.type = type
       self.testonly = False
@@ -331,6 +120,7 @@
       self.outputs = set()
       self.script = None
       self.args = []
+      self.response_file_contents = None
 
       # These variables are propagated up when encountering a dependency
       # on a source_set target.
@@ -380,6 +170,21 @@
     self.actions = {}
     self.proto_libs = {}
 
+  def _get_response_file_contents(self, action_desc):
+    # response_file_contents are formatted as:
+    # ['--flags', '--flag=true && false'] and need to be formatted as:
+    # '--flags --flag=\"true && false\"'
+    flags = action_desc.get('response_file_contents', [])
+    formatted_flags = []
+    for flag in flags:
+      if '=' in flag:
+        key, val = flag.split('=')
+        formatted_flags.append('%s=\\"%s\\"' % (key, val))
+      else:
+        formatted_flags.append(flag)
+
+    return ' '.join(formatted_flags)
+
   def get_target(self, gn_target_name):
     """Returns a Target object from the fully qualified GN target name.
 
@@ -396,10 +201,14 @@
     target.toolchain = desc.get('toolchain', None)
     self.all_targets[gn_target_name] = target
 
+    # TODO: determine if below comment should apply for cronet builds in Android.
     # We should never have GN targets directly depend on buidtools. They
     # should hop via //gn:xxx, so we can give generators an opportunity to
     # override them.
-    assert (not gn_target_name.startswith('//buildtools'))
+    # Specifically allow targets to depend on libc++ and libunwind.
+    if not any(match in gn_target_name for match in ['libc++', 'libunwind']):
+      assert (not gn_target_name.startswith('//buildtools'))
+
 
     # Don't descend further into third_party targets. Genrators are supposed
     # to either ignore them or route to other externally-provided targets.
@@ -422,16 +231,18 @@
     elif target.type in LINKER_UNIT_TYPES:
       self.linker_units[gn_target_name] = target
       target.sources.update(desc.get('sources', []))
-    elif target.type == 'action':
+    elif target.type in ['action', 'action_foreach']:
       self.actions[gn_target_name] = target
       target.inputs.update(desc.get('inputs', []))
       target.sources.update(desc.get('sources', []))
       outs = [re.sub('^//out/.+?/gen/', '', x) for x in desc['outputs']]
       target.outputs.update(outs)
       target.script = desc['script']
-      # Args are typically relative to the root build dir (../../xxx)
-      # because root build dir is typically out/xxx/).
-      target.args = [re.sub('^../../', '//', x) for x in desc['args']]
+      target.args = desc['args']
+      target.response_file_contents = self._get_response_file_contents(desc)
+    elif target.type == 'copy':
+      # TODO: copy rules are not currently implemented.
+      self.actions[gn_target_name] = target
 
     # Default for 'public' is //* - all headers in 'sources' are public.
     # TODO(primiano): if a 'public' section is specified (even if empty), then
@@ -462,7 +273,7 @@
         target.update(dep)  # Bubble up source set's cflags/ldflags etc.
       elif dep.type == 'group':
         target.update(dep)  # Bubble up groups's cflags/ldflags etc.
-      elif dep.type == 'action':
+      elif dep.type in ['action', 'action_foreach', 'copy']:
         if proto_target_type is None:
           target.deps.add(dep_name)
       elif dep.type in LINKER_UNIT_TYPES:
diff --git a/tools/gn2bp/run_buildtools_binary.py b/tools/gn2bp/run_buildtools_binary.py
deleted file mode 100755
index 7a6fe81..0000000
--- a/tools/gn2bp/run_buildtools_binary.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (C) 2022 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-""" A wrapper to run gn, ninja and other buildtools/ for all platforms. """
-
-from __future__ import print_function
-
-import os
-import subprocess
-import sys
-
-from platform import system, machine
-
-ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
-
-def run_buildtools_binary(args):
-  if len(args) < 1:
-    print('Usage %s command [args]\n' % sys.argv[0])
-    return 1
-
-  sys_name = system().lower()
-  os_dir = None
-  ext = ''
-  if sys_name == 'windows':
-    os_dir = 'win'
-    ext = '.exe'
-  elif sys_name == 'darwin':
-    os_dir = 'mac'
-  elif sys_name == 'linux':
-    os_dir = 'linux64'
-  else:
-    print('OS not supported: %s\n' % sys_name)
-    return 1
-
-  cmd = args[0]
-  args = args[1:]
-  exe_path = os.path.join(ROOT_DIR, 'buildtools', os_dir, cmd) + ext
-  if sys_name == 'windows':
-    # execl() behaves oddly on Windows: the spawned process doesn't seem to
-    # receive CTRL+C. Use subprocess instead.
-    return subprocess.call([exe_path] + args)
-  else:
-    os.execl(exe_path, os.path.basename(exe_path), *args)
-
-
-if __name__ == '__main__':
-  sys.exit(run_buildtools_binary(sys.argv[1:]))
diff --git a/tools/gn2bp/update_results.sh b/tools/gn2bp/update_results.sh
new file mode 100755
index 0000000..ad0277c
--- /dev/null
+++ b/tools/gn2bp/update_results.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# This script is expected to run after gen_android_bp is modified.
+#
+#   ./update_result.sh
+#
+# TARGETS contains targets which are supported by gen_android_bp and
+# this script generates Android.bp.swp from TARGETS.
+# This makes it easy to realize unintended impact/degression on
+# previously supported targets.
+
+set -eux
+
+TARGETS=(
+  "//net:net"
+)
+
+BASEDIR=$(dirname "$0")
+$BASEDIR/gen_android_bp --desc $BASEDIR/desc.json --out $BASEDIR/Android.bp ${TARGETS[@]}