initial_response {
  [search.now.wire.feed.FeedResponse.feed_response] {
    data_operation {
      operation: CLEAR_ALL
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "piet-shared-state"
          id: 1
          table: "piet-shared-state"
        }
      }
      piet_shared_state {
        stylesheets {
          stylesheet_id: "feed-story-card"
          styles {
            style_id: "card"
            padding {
              start: 16
              end: 16
            }
          }
          styles {
            style_id: "mini-card"
            padding {
              start: 0
              end: 0
            }
          }
        }
        templates {
          template_id: "story-content-template"
          stylesheet {
            styles {
              style_id: "story"
            }
            styles {
              style_id: "row-style"
              background {
                color: 268435456
              }
            }
            styles {
              style_id: "image"
              width: 96
              height: 112
              scale_type: CENTER_CROP
            }
            styles {
              style_id: "cell-style"
              padding {
                start: 0
                end: 16
              }
            }
            styles {
              style_id: "title"
              color: 3724541952
              font {
                size: 16
              }
              padding {
                top: 16
                bottom: 0
                start: 0
                end: 0
              }
              min_height: 80
              max_lines: 3
            }
            styles {
              style_id: "source-row"
              padding {
                top: 2
                bottom: 0
                start: 0
                end: 0
              }
            }
            styles {
              style_id: "source-icon"
              padding {
                top: 0
                bottom: 0
                start: 0
                end: 0
              }
              width: 16
              height: 16
            }
            styles {
              style_id: "source"
              font {
                size: 12
              }
              padding {
                top: 0
                bottom: 0
                start: 12
                end: 0
              }
            }
            styles {
              style_id: "style-badge-icon"
              margins {
                bottom: 4
                end: 20
              }
              width: 18
              height: 18
            }
          }
          element {
            grid_row {
              style_references {
                style_ids: "story"
                style_ids: "row-style"
              }
              cells {
                width_binding {
                  binding_id: "image-width"
                }
                content {
                  element {
                    image_element {
                      style_references {
                        style_ids: "story"
                        style_ids: "image"
                        style_ids: "cell-style"
                      }
                      image_binding {
                        binding_id: "image-binding"
                      }
                    }
                    overlays {
                      element {
                        image_element {
                          style_references {
                            style_ids: "story"
                            style_ids: "style-badge-icon"
                          }
                          image {
                            sources {
                              url: "asset://offline_indicator_badge"
                            }
                          }
                        }
                        gravity_horizontal: GRAVITY_END
                        gravity_vertical: GRAVITY_BOTTOM
                        visibility_state {
                          overriding_bound_visibility {
                            binding_id: "image-overlay-visibility"
                          }
                          default_visibility: GONE
                        }
                      }
                    }
                  }
                }
              }
              cells {
                width {
                  weight: 1
                }
                content {
                  element {
                    element_list {
                      style_references {
                        style_ids: "story"
                      }
                      contents {
                        element {
                          text_element {
                            style_references {
                              style_ids: "story"
                              style_ids: "title"
                            }
                            parameterized_text_binding {
                              binding_id: "title-binding"
                            }
                          }
                        }
                      }
                      contents {
                        element {
                          grid_row {
                            style_references {
                              style_ids: "story"
                              style_ids: "source-row"
                            }
                            cells {
                              width {
                                dp: 16
                              }
                              content {
                                element {
                                  image_element {
                                    style_references {
                                      style_ids: "story"
                                      style_ids: "source-icon"
                                    }
                                    image_binding {
                                      binding_id: "source-icon-binding"
                                    }
                                  }
                                }
                              }
                            }
                            cells {
                              content {
                                element {
                                  text_element {
                                    style_references {
                                      style_ids: "story"
                                      style_ids: "source"
                                    }
                                    parameterized_text_binding {
                                      binding_id: "source-binding"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
            actions_binding {
              binding_id: "actions-binding"
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
      }
      feature {
        renderable_unit: STREAM
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3001
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2001
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3001
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2001
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3001
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20010
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2001
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
          }
          offline_metadata {
            title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions"
            image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
            publisher: "Profootballtalk.com \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "Profootballtalk.com \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3002
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2002
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3002
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2002
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3002
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20020
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2002
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
          }
          offline_metadata {
            title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering"
            image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
            publisher: "Profootballtalk.com \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "Profootballtalk.com \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3003
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2003
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3003
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2003
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3003
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20030
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2003
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
          }
          offline_metadata {
            title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign"
            image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
            publisher: "Washington Post \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "Washington Post \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3004
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2004
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3004
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2004
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3004
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20040
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2004
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
          }
          offline_metadata {
            title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey"
            image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
            publisher: "ABC \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "ABC \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3005
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2005
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3005
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2005
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3005
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20050
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2005
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
          }
          offline_metadata {
            title: "CUTE little satellite out of Boulder will track the movements of evaporating planets"
            image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
            publisher: "ABC \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "CUTE little satellite out of Boulder will track the movements of evaporating planets"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "ABC \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3006
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2006
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3006
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2006
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3006
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20060
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2006
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
          }
          offline_metadata {
            title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground"
            image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
            publisher: "Steamboat Pilot & Today \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "Steamboat Pilot & Today \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3007
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2007
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3007
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2007
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3007
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20070
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2007
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "https://www.forbes.com/science/#776883b25738"
          }
          offline_metadata {
            title: "Forbes Science Innovation"
            image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
            publisher: "Forbes \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "Forbes Science Innovation"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "Forbes \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "https://www.forbes.com/science/#776883b25738"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "https://www.forbes.com/science/#776883b25738"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "https://www.forbes.com/science/#776883b25738"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3008
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2008
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3008
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2008
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3008
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20080
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2008
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
          }
          offline_metadata {
            title: "Vehicle strickes 3 students outside high school in France"
            image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
            publisher: "CNN \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "Vehicle strickes 3 students outside high school in France"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "CNN \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3009
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2009
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3009
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2009
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3009
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20090
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2009
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
          }
          offline_metadata {
            title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2009)"
            image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
            publisher: "Profootballtalk.com \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2009)"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "Profootballtalk.com \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "cluster.f"
          id: 3010
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: CLUSTER
        [search.now.ui.stream.Cluster.cluster_extension] {
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "card.f"
          id: 2010
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "cluster.f"
          id: 3010
          table: "feature"
        }
        renderable_unit: CARD
        [search.now.ui.stream.Card.card_extension] {
          [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
            swipe_action {
              [search.now.ui.action.FeedAction.feed_action_extension] {
                metadata {
                  type: DISMISS_LOCAL
                  dismiss_data {
                    content_id {
                      content_domain: "card.f"
                      id: 2010
                      table: "feature"
                    }
                    data_operations {
                      operation: REMOVE
                      metadata {
                        content_id {
                          content_domain: "cluster.f"
                          id: 3010
                          table: "feature"
                        }
                      }
                      feature {
                        parent_id {
                          content_domain: "root"
                          id: 0
                          table: "FEATURE"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "content.f"
          id: 20100
          table: "feature"
        }
      }
      feature {
        parent_id {
          content_domain: "card.f"
          id: 2010
          table: "feature"
        }
        renderable_unit: CONTENT
        [search.now.ui.stream.Content.content_extension] {
          type: PIET
          representation_data {
            uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
          }
          offline_metadata {
            title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2010)"
            image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
            publisher: "Profootballtalk.com \302\267 %s"
            favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
          }
          [search.now.ui.stream.PietContent.piet_content_extension] {
            piet_shared_states {
              content_domain: "piet-shared-state"
              id: 1
              table: "piet-shared-state"
            }
            frame {
              tag: "Story-Card-Feed"
              stylesheet_id: "feed-story-card"
              style_references {
                style_ids: "mini-card"
              }
              contents {
                template_invocation {
                  template_id: "story-content-template"
                  binding_contexts {
                    binding_values {
                      binding_id: "image-binding"
                      image {
                        sources {
                          url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-width"
                      cell_width {
                        dp: 112
                      }
                    }
                    binding_values {
                      binding_id: "title-binding"
                      parameterized_text {
                        text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2010)"
                      }
                    }
                    binding_values {
                      binding_id: "source-icon-binding"
                      image {
                        sources {
                          url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                        }
                      }
                    }
                    binding_values {
                      binding_id: "source-binding"
                      parameterized_text {
                        text: "Profootballtalk.com \302\267 %s"
                        parameters {
                          timestamp_seconds: 1510335173
                        }
                      }
                    }
                    binding_values {
                      binding_id: "actions-binding"
                      actions {
                        on_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_URL
                                  open_url_data {
                                    url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                  }
                                }
                              }
                            }
                          }
                        }
                        on_long_click_action {
                          [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                            feed_action_payload {
                              [search.now.ui.action.FeedAction.feed_action_extension] {
                                metadata {
                                  type: OPEN_CONTEXT_MENU
                                  open_context_menu_data {
                                    context_menu_data {
                                      label: "Open"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: OPEN_URL
                                            open_url_data {
                                              url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                            }
                                          }
                                        }
                                      }
                                    }
                                    context_menu_data {
                                      label: "Download link"
                                      feed_action_payload {
                                        [search.now.ui.action.FeedAction.feed_action_extension] {
                                          metadata {
                                            type: DOWNLOAD
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    binding_values {
                      binding_id: "image-overlay-visibility"
                      host_binding_data {
                        [search.now.ui.stream.OfflineExtension.offline_extension] {
                          url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                          offline_binding {
                            visibility: VISIBLE
                          }
                          not_offline_binding {
                            visibility: GONE
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    data_operation {
      operation: UPDATE_OR_APPEND
      metadata {
        content_id {
          content_domain: "token.f"
          id: 1
          table: "token"
        }
      }
      feature {
        parent_id {
          content_domain: "root"
          id: 0
          table: "FEATURE"
        }
        renderable_unit: TOKEN
        [search.now.wire.feed.Token.token_extension] {
          next_page_token: "1"
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "1"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3011
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2011
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3011
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2011
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3011
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20110
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2011
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2011)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2011)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3012
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2012
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3012
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2012
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3012
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20120
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2012
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2012)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2012)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3013
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2013
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3013
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2013
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3013
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20130
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2013
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2013)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2013)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3014
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2014
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3014
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2014
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3014
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20140
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2014
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2014)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2014)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3015
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2015
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3015
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2015
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3015
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20150
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2015
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3016
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2016
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3016
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2016
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3016
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20160
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2016
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2016)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2016)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3017
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2017
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3017
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2017
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3017
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20170
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2017
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2017)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2017)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3018
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2018
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3018
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2018
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3018
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20180
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2018
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2018)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2018)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3019
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2019
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3019
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2019
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3019
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20190
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2019
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2019)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2019)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 2
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "2"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "2"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3020
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2020
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3020
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2020
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3020
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20200
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2020
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2020)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2020)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3021
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2021
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3021
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2021
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3021
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20210
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2021
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2021)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2021)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3022
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2022
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3022
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2022
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3022
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20220
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2022
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2022)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2022)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3023
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2023
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3023
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2023
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3023
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20230
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2023
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2023)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2023)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3024
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2024
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3024
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2024
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3024
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20240
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2024
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2024)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2024)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3025
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2025
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3025
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2025
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3025
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20250
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2025
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2025)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2025)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3026
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2026
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3026
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2026
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3026
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20260
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2026
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2026)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2026)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3027
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2027
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3027
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2027
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3027
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20270
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2027
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2027)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2027)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3028
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2028
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3028
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2028
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3028
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20280
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2028
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2028)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2028)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3029
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2029
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3029
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2029
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3029
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20290
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2029
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2029)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2029)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 3
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "3"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "3"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3030
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2030
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3030
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2030
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3030
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20300
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2030
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2030)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2030)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3031
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2031
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3031
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2031
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3031
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20310
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2031
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2031)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2031)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3032
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2032
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3032
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2032
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3032
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20320
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2032
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2032)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2032)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3033
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2033
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3033
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2033
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3033
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20330
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2033
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2033)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2033)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3034
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2034
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3034
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2034
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3034
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20340
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2034
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2034)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2034)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3035
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2035
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3035
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2035
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3035
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20350
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2035
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2035)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2035)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3036
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2036
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3036
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2036
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3036
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20360
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2036
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2036)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2036)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3037
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2037
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3037
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2037
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3037
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20370
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2037
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2037)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2037)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3038
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2038
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3038
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2038
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3038
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20380
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2038
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2038)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2038)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3039
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2039
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3039
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2039
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3039
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20390
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2039
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2039)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2039)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 4
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "4"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "4"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3040
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2040
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3040
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2040
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3040
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20400
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2040
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2040)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2040)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3041
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2041
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3041
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2041
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3041
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20410
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2041
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2041)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2041)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3042
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2042
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3042
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2042
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3042
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20420
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2042
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2042)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2042)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3043
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2043
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3043
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2043
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3043
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20430
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2043
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2043)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2043)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3044
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2044
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3044
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2044
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3044
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20440
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2044
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2044)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2044)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3045
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2045
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3045
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2045
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3045
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20450
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2045
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2045)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2045)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3046
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2046
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3046
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2046
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3046
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20460
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2046
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2046)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2046)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3047
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2047
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3047
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2047
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3047
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20470
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2047
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2047)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2047)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3048
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2048
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3048
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2048
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3048
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20480
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2048
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2048)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2048)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3049
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2049
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3049
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2049
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3049
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20490
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2049
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2049)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2049)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 5
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "5"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "5"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3050
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2050
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3050
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2050
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3050
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20500
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2050
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2050)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2050)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3051
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2051
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3051
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2051
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3051
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20510
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2051
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2051)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2051)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3052
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2052
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3052
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2052
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3052
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20520
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2052
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2052)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2052)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3053
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2053
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3053
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2053
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3053
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20530
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2053
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2053)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2053)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3054
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2054
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3054
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2054
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3054
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20540
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2054
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2054)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2054)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3055
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2055
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3055
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2055
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3055
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20550
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2055
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2055)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2055)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3056
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2056
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3056
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2056
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3056
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20560
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2056
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2056)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2056)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3057
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2057
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3057
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2057
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3057
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20570
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2057
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2057)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2057)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3058
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2058
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3058
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2058
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3058
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20580
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2058
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2058)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2058)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3059
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2059
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3059
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2059
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3059
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20590
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2059
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2059)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2059)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 6
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "6"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "6"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3060
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2060
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3060
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2060
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3060
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20600
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2060
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2060)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2060)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3061
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2061
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3061
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2061
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3061
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20610
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2061
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2061)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2061)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3062
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2062
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3062
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2062
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3062
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20620
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2062
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2062)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2062)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3063
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2063
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3063
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2063
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3063
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20630
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2063
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2063)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2063)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3064
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2064
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3064
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2064
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3064
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20640
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2064
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2064)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2064)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3065
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2065
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3065
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2065
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3065
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20650
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2065
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2065)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2065)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3066
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2066
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3066
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2066
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3066
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20660
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2066
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2066)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2066)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3067
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2067
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3067
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2067
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3067
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20670
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2067
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2067)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2067)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3068
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2068
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3068
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2068
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3068
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20680
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2068
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2068)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2068)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3069
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2069
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3069
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2069
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3069
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20690
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2069
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2069)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2069)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 7
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "7"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "7"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3070
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2070
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3070
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2070
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3070
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20700
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2070
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2070)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2070)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3071
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2071
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3071
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2071
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3071
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20710
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2071
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2071)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2071)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3072
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2072
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3072
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2072
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3072
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20720
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2072
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2072)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2072)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3073
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2073
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3073
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2073
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3073
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20730
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2073
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2073)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2073)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3074
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2074
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3074
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2074
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3074
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20740
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2074
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2074)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2074)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3075
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2075
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3075
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2075
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3075
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20750
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2075
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2075)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2075)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3076
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2076
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3076
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2076
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3076
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20760
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2076
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2076)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2076)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3077
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2077
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3077
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2077
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3077
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20770
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2077
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2077)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2077)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3078
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2078
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3078
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2078
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3078
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20780
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2078
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2078)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2078)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3079
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2079
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3079
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2079
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3079
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20790
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2079
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2079)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2079)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 8
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "8"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "8"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3080
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2080
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3080
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2080
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3080
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20800
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2080
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2080)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2080)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3081
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2081
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3081
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2081
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3081
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20810
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2081
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2081)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2081)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3082
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2082
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3082
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2082
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3082
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20820
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2082
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2082)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2082)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3083
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2083
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3083
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2083
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3083
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20830
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2083
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2083)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2083)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3084
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2084
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3084
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2084
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3084
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20840
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2084
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2084)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2084)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3085
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2085
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3085
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2085
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3085
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20850
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2085
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2085)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2085)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3086
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2086
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3086
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2086
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3086
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20860
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2086
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2086)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2086)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3087
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2087
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3087
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2087
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3087
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20870
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2087
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2087)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2087)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3088
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2088
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3088
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2088
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3088
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20880
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2088
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2088)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2088)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3089
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2089
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3089
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2089
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3089
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20890
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2089
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2089)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2089)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "token.f"
            id: 9
            table: "token"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: TOKEN
          [search.now.wire.feed.Token.token_extension] {
            next_page_token: "9"
          }
        }
      }
    }
  }
}
conditional_responses {
  continuation_token: "9"
  response {
    [search.now.wire.feed.FeedResponse.feed_response] {
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3090
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2090
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3090
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2090
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3090
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20900
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2090
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2090)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2090)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3091
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2091
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3091
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2091
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3091
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20910
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2091
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2091)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2091)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3092
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2092
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3092
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2092
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3092
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20920
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2092
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2092)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2092)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3093
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2093
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3093
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2093
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3093
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20930
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2093
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
            }
            offline_metadata {
              title: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2093)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTz19uN0l1h021PxH7S4CtDErHhM4B8U1hjo0r7sQRMtCq1vjtBektPUtyTaGGzdnd-wVU1tKpqdA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "CUTE little satellite out of Boulder will track the movements of evaporating planets (2093)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.denverpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.denverpost.com/2017/11/10/boulder-satellite-tracking-evaporating-planets/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3094
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2094
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3094
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2094
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3094
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20940
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2094
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
            }
            offline_metadata {
              title: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2094)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
              publisher: "Steamboat Pilot & Today \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSoF-4GkCkOzSmiHp58QoyBERjH3kH5tiaoZeIjEEsLuKdl9EEapB2J1h--POUBiJNG68nRgqHcmA"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "City of Steamboat will abandon ship and replace Yampa River Queen with new playground (2094)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.steamboattoday.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Steamboat Pilot & Today \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.steamboattoday.com/news/city-of-steamboat-will-abandon-ship-and-replace-yampa-river-queen-with-new-playground/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3095
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2095
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3095
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2095
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3095
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20950
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2095
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.forbes.com/science/#776883b25738"
            }
            offline_metadata {
              title: "Forbes Science Innovation (2095)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
              publisher: "Forbes \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcR9HdsNXd1Z83y2MQDeE342tOYx0mSrfoZKkKU0403OAJJUrHfHZr1n11o3ARrjsOEVMQIBlZZ5nQ"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Forbes Science Innovation (2095)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.forbes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Forbes \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.forbes.com/science/#776883b25738"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.forbes.com/science/#776883b25738"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.forbes.com/science/#776883b25738"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3096
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2096
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3096
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2096
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3096
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20960
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2096
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
            }
            offline_metadata {
              title: "Vehicle strickes 3 students outside high school in France (2096)"
              image_url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
              publisher: "CNN \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQawd6lLp2kLa2OTpzk1XY7GW1TP_4rh7WUX96MSbuFXYYvvBeCZeeJMq2-MgPrXS1QTuATr_wxKZM"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Vehicle strickes 3 students outside high school in France (2096)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "CNN \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/europe/france-school-car-incident/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3097
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2097
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3097
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2097
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3097
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20970
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2097
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
            }
            offline_metadata {
              title: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2097)"
              image_url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRydPYA9MW5_G1lKk6fM8OVNf9z7lF5e7ZI2hAAVIAAb-_b3eyQrCQN6j2AcNAaWu-KO11XpQfC-A"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Jerry Jones: Owners should approve of Roger Goodell\'s decisions (2097)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.profootballtalk.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://profootballtalk.nbcsports.com/2017/11/10/jerry-jones-owners-should-approve-of-roger-goodells-decisions/"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3098
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2098
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3098
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2098
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3098
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20980
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2098
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
            }
            offline_metadata {
              title: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2098)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
              publisher: "Profootballtalk.com \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh1tEaJT-br6mBxM89U3vgjDldwb9L_baZszhstAGMQh3_fuG13ax3C9ewR2tq45tbZj74CHl3KNU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "Trump Pitches \'American First\' Trade Policy at Asia-Pacific Gathering  (2098)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.nytimes.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Profootballtalk.com \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.nytimes.com/2017/11/10/world/asia/trump-apec-asia-trade.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3099
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2099
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3099
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2099
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3099
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 20990
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2099
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
            }
            offline_metadata {
              title: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2099)"
              image_url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
              publisher: "Washington Post \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSTWemQt24vuAlcjON_8NzOA3ZYEG03b-Wklvo2_cpk_eWooNdYAhxXbazZuv9Y7AZws2Xv5n4Xvm0"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "National Republican Senatorial Committee ends joing fundraising agreement with Roy Moore campaign (2099)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.washingtonpost.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "Washington Post \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "https://www.washingtonpost.com/powerpost/national-republican-senatorial-committee-ends-joint-fundraising-agreement-with-roy-moore-campaign/2017/11/10/f393278c-c62e-11e7-84bc-5e285c7f4512_story.html?utm_term=.fd2ef2b9fedb"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "cluster.f"
            id: 3100
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "root"
            id: 0
            table: "FEATURE"
          }
          renderable_unit: CLUSTER
          [search.now.ui.stream.Cluster.cluster_extension] {
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "card.f"
            id: 2100
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "cluster.f"
            id: 3100
            table: "feature"
          }
          renderable_unit: CARD
          [search.now.ui.stream.Card.card_extension] {
            [search.now.ui.stream.SwipeActionExtension.swipe_action_extension] {
              swipe_action {
                [search.now.ui.action.FeedAction.feed_action_extension] {
                  metadata {
                    type: DISMISS_LOCAL
                    dismiss_data {
                      content_id {
                        content_domain: "card.f"
                        id: 2100
                        table: "feature"
                      }
                      data_operations {
                        operation: REMOVE
                        metadata {
                          content_id {
                            content_domain: "cluster.f"
                            id: 3100
                            table: "feature"
                          }
                        }
                        feature {
                          parent_id {
                            content_domain: "root"
                            id: 0
                            table: "FEATURE"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      data_operation {
        operation: UPDATE_OR_APPEND
        metadata {
          content_id {
            content_domain: "content.f"
            id: 21000
            table: "feature"
          }
        }
        feature {
          parent_id {
            content_domain: "card.f"
            id: 2100
            table: "feature"
          }
          renderable_unit: CONTENT
          [search.now.ui.stream.Content.content_extension] {
            type: PIET
            representation_data {
              uri: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
            }
            offline_metadata {
              title: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2100)"
              image_url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
              publisher: "ABC \302\267 %s"
              favicon_url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
            }
            [search.now.ui.stream.PietContent.piet_content_extension] {
              piet_shared_states {
                content_domain: "piet-shared-state"
                id: 1
                table: "piet-shared-state"
              }
              frame {
                tag: "Story-Card-Feed"
                stylesheet_id: "feed-story-card"
                style_references {
                  style_ids: "mini-card"
                }
                contents {
                  template_invocation {
                    template_id: "story-content-template"
                    binding_contexts {
                      binding_values {
                        binding_id: "image-binding"
                        image {
                          sources {
                            url: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQz4-TOlUDcX_j89z_LAIKcut0rRUbYmZ1kK89JATXJL8szyOArEt7BGzIhcZRHI5BYREY3meio1tU"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-width"
                        cell_width {
                          dp: 112
                        }
                      }
                      binding_values {
                        binding_id: "title-binding"
                        parameterized_text {
                          text: "WSJ: Mueller probes Flynn role in plot to deliver cleric to Turkey (2100)"
                        }
                      }
                      binding_values {
                        binding_id: "source-icon-binding"
                        image {
                          sources {
                            url: "https://www.google.com/s2/favicons?domain=www.cnn.com&sz=48"
                          }
                        }
                      }
                      binding_values {
                        binding_id: "source-binding"
                        parameterized_text {
                          text: "ABC \302\267 %s"
                          parameters {
                            timestamp_seconds: 1510335173
                          }
                        }
                      }
                      binding_values {
                        binding_id: "actions-binding"
                        actions {
                          on_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_URL
                                    open_url_data {
                                      url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                    }
                                  }
                                }
                              }
                            }
                          }
                          on_long_click_action {
                            [search.now.ui.action.PietFeedActionPayload.piet_feed_action_payload_extension] {
                              feed_action_payload {
                                [search.now.ui.action.FeedAction.feed_action_extension] {
                                  metadata {
                                    type: OPEN_CONTEXT_MENU
                                    open_context_menu_data {
                                      context_menu_data {
                                        label: "Open"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: OPEN_URL
                                              open_url_data {
                                                url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                                              }
                                            }
                                          }
                                        }
                                      }
                                      context_menu_data {
                                        label: "Download link"
                                        feed_action_payload {
                                          [search.now.ui.action.FeedAction.feed_action_extension] {
                                            metadata {
                                              type: DOWNLOAD
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                      binding_values {
                        binding_id: "image-overlay-visibility"
                        host_binding_data {
                          [search.now.ui.stream.OfflineExtension.offline_extension] {
                            url: "http://www.cnn.com/2017/11/10/politics/wsj-flynn-turkey/index.html"
                            offline_binding {
                              visibility: VISIBLE
                            }
                            not_offline_binding {
                              visibility: GONE
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
