You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1406 lines
62 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/ads/googleads/v1/common/user_lists.proto
  3. package common // import "google.golang.org/genproto/googleapis/ads/googleads/v1/common"
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import wrappers "github.com/golang/protobuf/ptypes/wrappers"
  8. import enums "google.golang.org/genproto/googleapis/ads/googleads/v1/enums"
  9. import _ "google.golang.org/genproto/googleapis/api/annotations"
  10. // Reference imports to suppress errors if they are not otherwise used.
  11. var _ = proto.Marshal
  12. var _ = fmt.Errorf
  13. var _ = math.Inf
  14. // This is a compile-time assertion to ensure that this generated file
  15. // is compatible with the proto package it is being compiled against.
  16. // A compilation error at this line likely means your copy of the
  17. // proto package needs to be updated.
  18. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  19. // SimilarUserList is a list of users which are similar to users from another
  20. // UserList. These lists are read-only and automatically created by Google.
  21. type SimilarUserListInfo struct {
  22. // Seed UserList from which this list is derived.
  23. SeedUserList *wrappers.StringValue `protobuf:"bytes,1,opt,name=seed_user_list,json=seedUserList,proto3" json:"seed_user_list,omitempty"`
  24. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  25. XXX_unrecognized []byte `json:"-"`
  26. XXX_sizecache int32 `json:"-"`
  27. }
  28. func (m *SimilarUserListInfo) Reset() { *m = SimilarUserListInfo{} }
  29. func (m *SimilarUserListInfo) String() string { return proto.CompactTextString(m) }
  30. func (*SimilarUserListInfo) ProtoMessage() {}
  31. func (*SimilarUserListInfo) Descriptor() ([]byte, []int) {
  32. return fileDescriptor_user_lists_e793ce52c6899d12, []int{0}
  33. }
  34. func (m *SimilarUserListInfo) XXX_Unmarshal(b []byte) error {
  35. return xxx_messageInfo_SimilarUserListInfo.Unmarshal(m, b)
  36. }
  37. func (m *SimilarUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  38. return xxx_messageInfo_SimilarUserListInfo.Marshal(b, m, deterministic)
  39. }
  40. func (dst *SimilarUserListInfo) XXX_Merge(src proto.Message) {
  41. xxx_messageInfo_SimilarUserListInfo.Merge(dst, src)
  42. }
  43. func (m *SimilarUserListInfo) XXX_Size() int {
  44. return xxx_messageInfo_SimilarUserListInfo.Size(m)
  45. }
  46. func (m *SimilarUserListInfo) XXX_DiscardUnknown() {
  47. xxx_messageInfo_SimilarUserListInfo.DiscardUnknown(m)
  48. }
  49. var xxx_messageInfo_SimilarUserListInfo proto.InternalMessageInfo
  50. func (m *SimilarUserListInfo) GetSeedUserList() *wrappers.StringValue {
  51. if m != nil {
  52. return m.SeedUserList
  53. }
  54. return nil
  55. }
  56. // UserList of CRM users provided by the advertiser.
  57. type CrmBasedUserListInfo struct {
  58. // A string that uniquely identifies a mobile application from which the data
  59. // was collected to the Google Ads API.
  60. // For iOS, the ID string is the 9 digit string that appears at the end of an
  61. // App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is
  62. // http://itunes.apple.com/us/app/flood-it!-2/id476943146).
  63. // For Android, the ID string is the application's package name
  64. // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link
  65. // https://play.google.com/store/apps/details?id=com.labpixies.colordrips).
  66. // Required when creating CrmBasedUserList for uploading mobile advertising
  67. // IDs.
  68. AppId *wrappers.StringValue `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
  69. // Matching key type of the list.
  70. // Mixed data types are not allowed on the same list.
  71. // This field is required for an ADD operation.
  72. UploadKeyType enums.CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType `protobuf:"varint,2,opt,name=upload_key_type,json=uploadKeyType,proto3,enum=google.ads.googleads.v1.enums.CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType" json:"upload_key_type,omitempty"`
  73. // Data source of the list. Default value is FIRST_PARTY.
  74. // Only whitelisted customers can create third-party sourced CRM lists.
  75. DataSourceType enums.UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType `protobuf:"varint,3,opt,name=data_source_type,json=dataSourceType,proto3,enum=google.ads.googleads.v1.enums.UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType" json:"data_source_type,omitempty"`
  76. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  77. XXX_unrecognized []byte `json:"-"`
  78. XXX_sizecache int32 `json:"-"`
  79. }
  80. func (m *CrmBasedUserListInfo) Reset() { *m = CrmBasedUserListInfo{} }
  81. func (m *CrmBasedUserListInfo) String() string { return proto.CompactTextString(m) }
  82. func (*CrmBasedUserListInfo) ProtoMessage() {}
  83. func (*CrmBasedUserListInfo) Descriptor() ([]byte, []int) {
  84. return fileDescriptor_user_lists_e793ce52c6899d12, []int{1}
  85. }
  86. func (m *CrmBasedUserListInfo) XXX_Unmarshal(b []byte) error {
  87. return xxx_messageInfo_CrmBasedUserListInfo.Unmarshal(m, b)
  88. }
  89. func (m *CrmBasedUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  90. return xxx_messageInfo_CrmBasedUserListInfo.Marshal(b, m, deterministic)
  91. }
  92. func (dst *CrmBasedUserListInfo) XXX_Merge(src proto.Message) {
  93. xxx_messageInfo_CrmBasedUserListInfo.Merge(dst, src)
  94. }
  95. func (m *CrmBasedUserListInfo) XXX_Size() int {
  96. return xxx_messageInfo_CrmBasedUserListInfo.Size(m)
  97. }
  98. func (m *CrmBasedUserListInfo) XXX_DiscardUnknown() {
  99. xxx_messageInfo_CrmBasedUserListInfo.DiscardUnknown(m)
  100. }
  101. var xxx_messageInfo_CrmBasedUserListInfo proto.InternalMessageInfo
  102. func (m *CrmBasedUserListInfo) GetAppId() *wrappers.StringValue {
  103. if m != nil {
  104. return m.AppId
  105. }
  106. return nil
  107. }
  108. func (m *CrmBasedUserListInfo) GetUploadKeyType() enums.CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType {
  109. if m != nil {
  110. return m.UploadKeyType
  111. }
  112. return enums.CustomerMatchUploadKeyTypeEnum_UNSPECIFIED
  113. }
  114. func (m *CrmBasedUserListInfo) GetDataSourceType() enums.UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType {
  115. if m != nil {
  116. return m.DataSourceType
  117. }
  118. return enums.UserListCrmDataSourceTypeEnum_UNSPECIFIED
  119. }
  120. // A client defined rule based on custom parameters sent by web sites or
  121. // uploaded by the advertiser.
  122. type UserListRuleInfo struct {
  123. // Rule type is used to determine how to group rule items.
  124. //
  125. // The default is OR of ANDs (disjunctive normal form).
  126. // That is, rule items will be ANDed together within rule item groups and the
  127. // groups themselves will be ORed together.
  128. //
  129. // Currently AND of ORs (conjunctive normal form) is only supported for
  130. // ExpressionRuleUserList.
  131. RuleType enums.UserListRuleTypeEnum_UserListRuleType `protobuf:"varint,1,opt,name=rule_type,json=ruleType,proto3,enum=google.ads.googleads.v1.enums.UserListRuleTypeEnum_UserListRuleType" json:"rule_type,omitempty"`
  132. // List of rule item groups that defines this rule.
  133. // Rule item groups are grouped together based on rule_type.
  134. RuleItemGroups []*UserListRuleItemGroupInfo `protobuf:"bytes,2,rep,name=rule_item_groups,json=ruleItemGroups,proto3" json:"rule_item_groups,omitempty"`
  135. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  136. XXX_unrecognized []byte `json:"-"`
  137. XXX_sizecache int32 `json:"-"`
  138. }
  139. func (m *UserListRuleInfo) Reset() { *m = UserListRuleInfo{} }
  140. func (m *UserListRuleInfo) String() string { return proto.CompactTextString(m) }
  141. func (*UserListRuleInfo) ProtoMessage() {}
  142. func (*UserListRuleInfo) Descriptor() ([]byte, []int) {
  143. return fileDescriptor_user_lists_e793ce52c6899d12, []int{2}
  144. }
  145. func (m *UserListRuleInfo) XXX_Unmarshal(b []byte) error {
  146. return xxx_messageInfo_UserListRuleInfo.Unmarshal(m, b)
  147. }
  148. func (m *UserListRuleInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  149. return xxx_messageInfo_UserListRuleInfo.Marshal(b, m, deterministic)
  150. }
  151. func (dst *UserListRuleInfo) XXX_Merge(src proto.Message) {
  152. xxx_messageInfo_UserListRuleInfo.Merge(dst, src)
  153. }
  154. func (m *UserListRuleInfo) XXX_Size() int {
  155. return xxx_messageInfo_UserListRuleInfo.Size(m)
  156. }
  157. func (m *UserListRuleInfo) XXX_DiscardUnknown() {
  158. xxx_messageInfo_UserListRuleInfo.DiscardUnknown(m)
  159. }
  160. var xxx_messageInfo_UserListRuleInfo proto.InternalMessageInfo
  161. func (m *UserListRuleInfo) GetRuleType() enums.UserListRuleTypeEnum_UserListRuleType {
  162. if m != nil {
  163. return m.RuleType
  164. }
  165. return enums.UserListRuleTypeEnum_UNSPECIFIED
  166. }
  167. func (m *UserListRuleInfo) GetRuleItemGroups() []*UserListRuleItemGroupInfo {
  168. if m != nil {
  169. return m.RuleItemGroups
  170. }
  171. return nil
  172. }
  173. // A group of rule items.
  174. type UserListRuleItemGroupInfo struct {
  175. // Rule items that will be grouped together based on rule_type.
  176. RuleItems []*UserListRuleItemInfo `protobuf:"bytes,1,rep,name=rule_items,json=ruleItems,proto3" json:"rule_items,omitempty"`
  177. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  178. XXX_unrecognized []byte `json:"-"`
  179. XXX_sizecache int32 `json:"-"`
  180. }
  181. func (m *UserListRuleItemGroupInfo) Reset() { *m = UserListRuleItemGroupInfo{} }
  182. func (m *UserListRuleItemGroupInfo) String() string { return proto.CompactTextString(m) }
  183. func (*UserListRuleItemGroupInfo) ProtoMessage() {}
  184. func (*UserListRuleItemGroupInfo) Descriptor() ([]byte, []int) {
  185. return fileDescriptor_user_lists_e793ce52c6899d12, []int{3}
  186. }
  187. func (m *UserListRuleItemGroupInfo) XXX_Unmarshal(b []byte) error {
  188. return xxx_messageInfo_UserListRuleItemGroupInfo.Unmarshal(m, b)
  189. }
  190. func (m *UserListRuleItemGroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  191. return xxx_messageInfo_UserListRuleItemGroupInfo.Marshal(b, m, deterministic)
  192. }
  193. func (dst *UserListRuleItemGroupInfo) XXX_Merge(src proto.Message) {
  194. xxx_messageInfo_UserListRuleItemGroupInfo.Merge(dst, src)
  195. }
  196. func (m *UserListRuleItemGroupInfo) XXX_Size() int {
  197. return xxx_messageInfo_UserListRuleItemGroupInfo.Size(m)
  198. }
  199. func (m *UserListRuleItemGroupInfo) XXX_DiscardUnknown() {
  200. xxx_messageInfo_UserListRuleItemGroupInfo.DiscardUnknown(m)
  201. }
  202. var xxx_messageInfo_UserListRuleItemGroupInfo proto.InternalMessageInfo
  203. func (m *UserListRuleItemGroupInfo) GetRuleItems() []*UserListRuleItemInfo {
  204. if m != nil {
  205. return m.RuleItems
  206. }
  207. return nil
  208. }
  209. // An atomic rule fragment.
  210. type UserListRuleItemInfo struct {
  211. // Rule variable name. It should match the corresponding key name fired
  212. // by the pixel.
  213. // A name must begin with US-ascii letters or underscore or UTF8 code that is
  214. // greater than 127 and consist of US-ascii letters or digits or underscore or
  215. // UTF8 code that is greater than 127.
  216. // For websites, there are two built-in variable URL (name = 'url__') and
  217. // referrer URL (name = 'ref_url__').
  218. // This field must be populated when creating a new rule item.
  219. Name *wrappers.StringValue `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  220. // An atomic rule fragment.
  221. //
  222. // Types that are valid to be assigned to RuleItem:
  223. // *UserListRuleItemInfo_NumberRuleItem
  224. // *UserListRuleItemInfo_StringRuleItem
  225. // *UserListRuleItemInfo_DateRuleItem
  226. RuleItem isUserListRuleItemInfo_RuleItem `protobuf_oneof:"rule_item"`
  227. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  228. XXX_unrecognized []byte `json:"-"`
  229. XXX_sizecache int32 `json:"-"`
  230. }
  231. func (m *UserListRuleItemInfo) Reset() { *m = UserListRuleItemInfo{} }
  232. func (m *UserListRuleItemInfo) String() string { return proto.CompactTextString(m) }
  233. func (*UserListRuleItemInfo) ProtoMessage() {}
  234. func (*UserListRuleItemInfo) Descriptor() ([]byte, []int) {
  235. return fileDescriptor_user_lists_e793ce52c6899d12, []int{4}
  236. }
  237. func (m *UserListRuleItemInfo) XXX_Unmarshal(b []byte) error {
  238. return xxx_messageInfo_UserListRuleItemInfo.Unmarshal(m, b)
  239. }
  240. func (m *UserListRuleItemInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  241. return xxx_messageInfo_UserListRuleItemInfo.Marshal(b, m, deterministic)
  242. }
  243. func (dst *UserListRuleItemInfo) XXX_Merge(src proto.Message) {
  244. xxx_messageInfo_UserListRuleItemInfo.Merge(dst, src)
  245. }
  246. func (m *UserListRuleItemInfo) XXX_Size() int {
  247. return xxx_messageInfo_UserListRuleItemInfo.Size(m)
  248. }
  249. func (m *UserListRuleItemInfo) XXX_DiscardUnknown() {
  250. xxx_messageInfo_UserListRuleItemInfo.DiscardUnknown(m)
  251. }
  252. var xxx_messageInfo_UserListRuleItemInfo proto.InternalMessageInfo
  253. func (m *UserListRuleItemInfo) GetName() *wrappers.StringValue {
  254. if m != nil {
  255. return m.Name
  256. }
  257. return nil
  258. }
  259. type isUserListRuleItemInfo_RuleItem interface {
  260. isUserListRuleItemInfo_RuleItem()
  261. }
  262. type UserListRuleItemInfo_NumberRuleItem struct {
  263. NumberRuleItem *UserListNumberRuleItemInfo `protobuf:"bytes,2,opt,name=number_rule_item,json=numberRuleItem,proto3,oneof"`
  264. }
  265. type UserListRuleItemInfo_StringRuleItem struct {
  266. StringRuleItem *UserListStringRuleItemInfo `protobuf:"bytes,3,opt,name=string_rule_item,json=stringRuleItem,proto3,oneof"`
  267. }
  268. type UserListRuleItemInfo_DateRuleItem struct {
  269. DateRuleItem *UserListDateRuleItemInfo `protobuf:"bytes,4,opt,name=date_rule_item,json=dateRuleItem,proto3,oneof"`
  270. }
  271. func (*UserListRuleItemInfo_NumberRuleItem) isUserListRuleItemInfo_RuleItem() {}
  272. func (*UserListRuleItemInfo_StringRuleItem) isUserListRuleItemInfo_RuleItem() {}
  273. func (*UserListRuleItemInfo_DateRuleItem) isUserListRuleItemInfo_RuleItem() {}
  274. func (m *UserListRuleItemInfo) GetRuleItem() isUserListRuleItemInfo_RuleItem {
  275. if m != nil {
  276. return m.RuleItem
  277. }
  278. return nil
  279. }
  280. func (m *UserListRuleItemInfo) GetNumberRuleItem() *UserListNumberRuleItemInfo {
  281. if x, ok := m.GetRuleItem().(*UserListRuleItemInfo_NumberRuleItem); ok {
  282. return x.NumberRuleItem
  283. }
  284. return nil
  285. }
  286. func (m *UserListRuleItemInfo) GetStringRuleItem() *UserListStringRuleItemInfo {
  287. if x, ok := m.GetRuleItem().(*UserListRuleItemInfo_StringRuleItem); ok {
  288. return x.StringRuleItem
  289. }
  290. return nil
  291. }
  292. func (m *UserListRuleItemInfo) GetDateRuleItem() *UserListDateRuleItemInfo {
  293. if x, ok := m.GetRuleItem().(*UserListRuleItemInfo_DateRuleItem); ok {
  294. return x.DateRuleItem
  295. }
  296. return nil
  297. }
  298. // XXX_OneofFuncs is for the internal use of the proto package.
  299. func (*UserListRuleItemInfo) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  300. return _UserListRuleItemInfo_OneofMarshaler, _UserListRuleItemInfo_OneofUnmarshaler, _UserListRuleItemInfo_OneofSizer, []interface{}{
  301. (*UserListRuleItemInfo_NumberRuleItem)(nil),
  302. (*UserListRuleItemInfo_StringRuleItem)(nil),
  303. (*UserListRuleItemInfo_DateRuleItem)(nil),
  304. }
  305. }
  306. func _UserListRuleItemInfo_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  307. m := msg.(*UserListRuleItemInfo)
  308. // rule_item
  309. switch x := m.RuleItem.(type) {
  310. case *UserListRuleItemInfo_NumberRuleItem:
  311. b.EncodeVarint(2<<3 | proto.WireBytes)
  312. if err := b.EncodeMessage(x.NumberRuleItem); err != nil {
  313. return err
  314. }
  315. case *UserListRuleItemInfo_StringRuleItem:
  316. b.EncodeVarint(3<<3 | proto.WireBytes)
  317. if err := b.EncodeMessage(x.StringRuleItem); err != nil {
  318. return err
  319. }
  320. case *UserListRuleItemInfo_DateRuleItem:
  321. b.EncodeVarint(4<<3 | proto.WireBytes)
  322. if err := b.EncodeMessage(x.DateRuleItem); err != nil {
  323. return err
  324. }
  325. case nil:
  326. default:
  327. return fmt.Errorf("UserListRuleItemInfo.RuleItem has unexpected type %T", x)
  328. }
  329. return nil
  330. }
  331. func _UserListRuleItemInfo_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  332. m := msg.(*UserListRuleItemInfo)
  333. switch tag {
  334. case 2: // rule_item.number_rule_item
  335. if wire != proto.WireBytes {
  336. return true, proto.ErrInternalBadWireType
  337. }
  338. msg := new(UserListNumberRuleItemInfo)
  339. err := b.DecodeMessage(msg)
  340. m.RuleItem = &UserListRuleItemInfo_NumberRuleItem{msg}
  341. return true, err
  342. case 3: // rule_item.string_rule_item
  343. if wire != proto.WireBytes {
  344. return true, proto.ErrInternalBadWireType
  345. }
  346. msg := new(UserListStringRuleItemInfo)
  347. err := b.DecodeMessage(msg)
  348. m.RuleItem = &UserListRuleItemInfo_StringRuleItem{msg}
  349. return true, err
  350. case 4: // rule_item.date_rule_item
  351. if wire != proto.WireBytes {
  352. return true, proto.ErrInternalBadWireType
  353. }
  354. msg := new(UserListDateRuleItemInfo)
  355. err := b.DecodeMessage(msg)
  356. m.RuleItem = &UserListRuleItemInfo_DateRuleItem{msg}
  357. return true, err
  358. default:
  359. return false, nil
  360. }
  361. }
  362. func _UserListRuleItemInfo_OneofSizer(msg proto.Message) (n int) {
  363. m := msg.(*UserListRuleItemInfo)
  364. // rule_item
  365. switch x := m.RuleItem.(type) {
  366. case *UserListRuleItemInfo_NumberRuleItem:
  367. s := proto.Size(x.NumberRuleItem)
  368. n += 1 // tag and wire
  369. n += proto.SizeVarint(uint64(s))
  370. n += s
  371. case *UserListRuleItemInfo_StringRuleItem:
  372. s := proto.Size(x.StringRuleItem)
  373. n += 1 // tag and wire
  374. n += proto.SizeVarint(uint64(s))
  375. n += s
  376. case *UserListRuleItemInfo_DateRuleItem:
  377. s := proto.Size(x.DateRuleItem)
  378. n += 1 // tag and wire
  379. n += proto.SizeVarint(uint64(s))
  380. n += s
  381. case nil:
  382. default:
  383. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  384. }
  385. return n
  386. }
  387. // A rule item composed of date operation.
  388. type UserListDateRuleItemInfo struct {
  389. // Date comparison operator.
  390. // This field is required and must be populated when creating new date
  391. // rule item.
  392. Operator enums.UserListDateRuleItemOperatorEnum_UserListDateRuleItemOperator `protobuf:"varint,1,opt,name=operator,proto3,enum=google.ads.googleads.v1.enums.UserListDateRuleItemOperatorEnum_UserListDateRuleItemOperator" json:"operator,omitempty"`
  393. // String representing date value to be compared with the rule variable.
  394. // Supported date format is YYYY-MM-DD.
  395. // Times are reported in the customer's time zone.
  396. Value *wrappers.StringValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  397. // The relative date value of the right hand side denoted by number of days
  398. // offset from now. The value field will override this field when both are
  399. // present.
  400. OffsetInDays *wrappers.Int64Value `protobuf:"bytes,3,opt,name=offset_in_days,json=offsetInDays,proto3" json:"offset_in_days,omitempty"`
  401. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  402. XXX_unrecognized []byte `json:"-"`
  403. XXX_sizecache int32 `json:"-"`
  404. }
  405. func (m *UserListDateRuleItemInfo) Reset() { *m = UserListDateRuleItemInfo{} }
  406. func (m *UserListDateRuleItemInfo) String() string { return proto.CompactTextString(m) }
  407. func (*UserListDateRuleItemInfo) ProtoMessage() {}
  408. func (*UserListDateRuleItemInfo) Descriptor() ([]byte, []int) {
  409. return fileDescriptor_user_lists_e793ce52c6899d12, []int{5}
  410. }
  411. func (m *UserListDateRuleItemInfo) XXX_Unmarshal(b []byte) error {
  412. return xxx_messageInfo_UserListDateRuleItemInfo.Unmarshal(m, b)
  413. }
  414. func (m *UserListDateRuleItemInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  415. return xxx_messageInfo_UserListDateRuleItemInfo.Marshal(b, m, deterministic)
  416. }
  417. func (dst *UserListDateRuleItemInfo) XXX_Merge(src proto.Message) {
  418. xxx_messageInfo_UserListDateRuleItemInfo.Merge(dst, src)
  419. }
  420. func (m *UserListDateRuleItemInfo) XXX_Size() int {
  421. return xxx_messageInfo_UserListDateRuleItemInfo.Size(m)
  422. }
  423. func (m *UserListDateRuleItemInfo) XXX_DiscardUnknown() {
  424. xxx_messageInfo_UserListDateRuleItemInfo.DiscardUnknown(m)
  425. }
  426. var xxx_messageInfo_UserListDateRuleItemInfo proto.InternalMessageInfo
  427. func (m *UserListDateRuleItemInfo) GetOperator() enums.UserListDateRuleItemOperatorEnum_UserListDateRuleItemOperator {
  428. if m != nil {
  429. return m.Operator
  430. }
  431. return enums.UserListDateRuleItemOperatorEnum_UNSPECIFIED
  432. }
  433. func (m *UserListDateRuleItemInfo) GetValue() *wrappers.StringValue {
  434. if m != nil {
  435. return m.Value
  436. }
  437. return nil
  438. }
  439. func (m *UserListDateRuleItemInfo) GetOffsetInDays() *wrappers.Int64Value {
  440. if m != nil {
  441. return m.OffsetInDays
  442. }
  443. return nil
  444. }
  445. // A rule item composed of number operation.
  446. type UserListNumberRuleItemInfo struct {
  447. // Number comparison operator.
  448. // This field is required and must be populated when creating a new number
  449. // rule item.
  450. Operator enums.UserListNumberRuleItemOperatorEnum_UserListNumberRuleItemOperator `protobuf:"varint,1,opt,name=operator,proto3,enum=google.ads.googleads.v1.enums.UserListNumberRuleItemOperatorEnum_UserListNumberRuleItemOperator" json:"operator,omitempty"`
  451. // Number value to be compared with the variable.
  452. // This field is required and must be populated when creating a new number
  453. // rule item.
  454. Value *wrappers.DoubleValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  455. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  456. XXX_unrecognized []byte `json:"-"`
  457. XXX_sizecache int32 `json:"-"`
  458. }
  459. func (m *UserListNumberRuleItemInfo) Reset() { *m = UserListNumberRuleItemInfo{} }
  460. func (m *UserListNumberRuleItemInfo) String() string { return proto.CompactTextString(m) }
  461. func (*UserListNumberRuleItemInfo) ProtoMessage() {}
  462. func (*UserListNumberRuleItemInfo) Descriptor() ([]byte, []int) {
  463. return fileDescriptor_user_lists_e793ce52c6899d12, []int{6}
  464. }
  465. func (m *UserListNumberRuleItemInfo) XXX_Unmarshal(b []byte) error {
  466. return xxx_messageInfo_UserListNumberRuleItemInfo.Unmarshal(m, b)
  467. }
  468. func (m *UserListNumberRuleItemInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  469. return xxx_messageInfo_UserListNumberRuleItemInfo.Marshal(b, m, deterministic)
  470. }
  471. func (dst *UserListNumberRuleItemInfo) XXX_Merge(src proto.Message) {
  472. xxx_messageInfo_UserListNumberRuleItemInfo.Merge(dst, src)
  473. }
  474. func (m *UserListNumberRuleItemInfo) XXX_Size() int {
  475. return xxx_messageInfo_UserListNumberRuleItemInfo.Size(m)
  476. }
  477. func (m *UserListNumberRuleItemInfo) XXX_DiscardUnknown() {
  478. xxx_messageInfo_UserListNumberRuleItemInfo.DiscardUnknown(m)
  479. }
  480. var xxx_messageInfo_UserListNumberRuleItemInfo proto.InternalMessageInfo
  481. func (m *UserListNumberRuleItemInfo) GetOperator() enums.UserListNumberRuleItemOperatorEnum_UserListNumberRuleItemOperator {
  482. if m != nil {
  483. return m.Operator
  484. }
  485. return enums.UserListNumberRuleItemOperatorEnum_UNSPECIFIED
  486. }
  487. func (m *UserListNumberRuleItemInfo) GetValue() *wrappers.DoubleValue {
  488. if m != nil {
  489. return m.Value
  490. }
  491. return nil
  492. }
  493. // A rule item fragment composed of date operation.
  494. type UserListStringRuleItemInfo struct {
  495. // String comparison operator.
  496. // This field is required and must be populated when creating a new string
  497. // rule item.
  498. Operator enums.UserListStringRuleItemOperatorEnum_UserListStringRuleItemOperator `protobuf:"varint,1,opt,name=operator,proto3,enum=google.ads.googleads.v1.enums.UserListStringRuleItemOperatorEnum_UserListStringRuleItemOperator" json:"operator,omitempty"`
  499. // The right hand side of the string rule item. For URLs or referrer URLs,
  500. // the value can not contain illegal URL chars such as newlines, quotes,
  501. // tabs, or parentheses. This field is required and must be populated when
  502. // creating a new string rule item.
  503. Value *wrappers.StringValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  504. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  505. XXX_unrecognized []byte `json:"-"`
  506. XXX_sizecache int32 `json:"-"`
  507. }
  508. func (m *UserListStringRuleItemInfo) Reset() { *m = UserListStringRuleItemInfo{} }
  509. func (m *UserListStringRuleItemInfo) String() string { return proto.CompactTextString(m) }
  510. func (*UserListStringRuleItemInfo) ProtoMessage() {}
  511. func (*UserListStringRuleItemInfo) Descriptor() ([]byte, []int) {
  512. return fileDescriptor_user_lists_e793ce52c6899d12, []int{7}
  513. }
  514. func (m *UserListStringRuleItemInfo) XXX_Unmarshal(b []byte) error {
  515. return xxx_messageInfo_UserListStringRuleItemInfo.Unmarshal(m, b)
  516. }
  517. func (m *UserListStringRuleItemInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  518. return xxx_messageInfo_UserListStringRuleItemInfo.Marshal(b, m, deterministic)
  519. }
  520. func (dst *UserListStringRuleItemInfo) XXX_Merge(src proto.Message) {
  521. xxx_messageInfo_UserListStringRuleItemInfo.Merge(dst, src)
  522. }
  523. func (m *UserListStringRuleItemInfo) XXX_Size() int {
  524. return xxx_messageInfo_UserListStringRuleItemInfo.Size(m)
  525. }
  526. func (m *UserListStringRuleItemInfo) XXX_DiscardUnknown() {
  527. xxx_messageInfo_UserListStringRuleItemInfo.DiscardUnknown(m)
  528. }
  529. var xxx_messageInfo_UserListStringRuleItemInfo proto.InternalMessageInfo
  530. func (m *UserListStringRuleItemInfo) GetOperator() enums.UserListStringRuleItemOperatorEnum_UserListStringRuleItemOperator {
  531. if m != nil {
  532. return m.Operator
  533. }
  534. return enums.UserListStringRuleItemOperatorEnum_UNSPECIFIED
  535. }
  536. func (m *UserListStringRuleItemInfo) GetValue() *wrappers.StringValue {
  537. if m != nil {
  538. return m.Value
  539. }
  540. return nil
  541. }
  542. // User lists defined by combining two rules, left operand and right operand.
  543. // There are two operators: AND where left operand and right operand have to be
  544. // true; AND_NOT where left operand is true but right operand is false.
  545. type CombinedRuleUserListInfo struct {
  546. // Left operand of the combined rule.
  547. // This field is required and must be populated when creating new combined
  548. // rule based user list.
  549. LeftOperand *UserListRuleInfo `protobuf:"bytes,1,opt,name=left_operand,json=leftOperand,proto3" json:"left_operand,omitempty"`
  550. // Right operand of the combined rule.
  551. // This field is required and must be populated when creating new combined
  552. // rule based user list.
  553. RightOperand *UserListRuleInfo `protobuf:"bytes,2,opt,name=right_operand,json=rightOperand,proto3" json:"right_operand,omitempty"`
  554. // Operator to connect the two operands.
  555. //
  556. // Required for creating a combined rule user list.
  557. RuleOperator enums.UserListCombinedRuleOperatorEnum_UserListCombinedRuleOperator `protobuf:"varint,3,opt,name=rule_operator,json=ruleOperator,proto3,enum=google.ads.googleads.v1.enums.UserListCombinedRuleOperatorEnum_UserListCombinedRuleOperator" json:"rule_operator,omitempty"`
  558. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  559. XXX_unrecognized []byte `json:"-"`
  560. XXX_sizecache int32 `json:"-"`
  561. }
  562. func (m *CombinedRuleUserListInfo) Reset() { *m = CombinedRuleUserListInfo{} }
  563. func (m *CombinedRuleUserListInfo) String() string { return proto.CompactTextString(m) }
  564. func (*CombinedRuleUserListInfo) ProtoMessage() {}
  565. func (*CombinedRuleUserListInfo) Descriptor() ([]byte, []int) {
  566. return fileDescriptor_user_lists_e793ce52c6899d12, []int{8}
  567. }
  568. func (m *CombinedRuleUserListInfo) XXX_Unmarshal(b []byte) error {
  569. return xxx_messageInfo_CombinedRuleUserListInfo.Unmarshal(m, b)
  570. }
  571. func (m *CombinedRuleUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  572. return xxx_messageInfo_CombinedRuleUserListInfo.Marshal(b, m, deterministic)
  573. }
  574. func (dst *CombinedRuleUserListInfo) XXX_Merge(src proto.Message) {
  575. xxx_messageInfo_CombinedRuleUserListInfo.Merge(dst, src)
  576. }
  577. func (m *CombinedRuleUserListInfo) XXX_Size() int {
  578. return xxx_messageInfo_CombinedRuleUserListInfo.Size(m)
  579. }
  580. func (m *CombinedRuleUserListInfo) XXX_DiscardUnknown() {
  581. xxx_messageInfo_CombinedRuleUserListInfo.DiscardUnknown(m)
  582. }
  583. var xxx_messageInfo_CombinedRuleUserListInfo proto.InternalMessageInfo
  584. func (m *CombinedRuleUserListInfo) GetLeftOperand() *UserListRuleInfo {
  585. if m != nil {
  586. return m.LeftOperand
  587. }
  588. return nil
  589. }
  590. func (m *CombinedRuleUserListInfo) GetRightOperand() *UserListRuleInfo {
  591. if m != nil {
  592. return m.RightOperand
  593. }
  594. return nil
  595. }
  596. func (m *CombinedRuleUserListInfo) GetRuleOperator() enums.UserListCombinedRuleOperatorEnum_UserListCombinedRuleOperator {
  597. if m != nil {
  598. return m.RuleOperator
  599. }
  600. return enums.UserListCombinedRuleOperatorEnum_UNSPECIFIED
  601. }
  602. // Visitors of a page during specific dates.
  603. type DateSpecificRuleUserListInfo struct {
  604. // Boolean rule that defines visitor of a page.
  605. //
  606. // Required for creating a date specific rule user list.
  607. Rule *UserListRuleInfo `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"`
  608. // Start date of users visit. If set to 2000-01-01, then the list includes all
  609. // users before end_date. The date's format should be YYYY-MM-DD.
  610. //
  611. // Required for creating a data specific rule user list.
  612. StartDate *wrappers.StringValue `protobuf:"bytes,2,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
  613. // End date of users visit. If set to 2037-12-30, then the list includes all
  614. // users after start_date. The date's format should be YYYY-MM-DD.
  615. //
  616. // Required for creating a data specific rule user list.
  617. EndDate *wrappers.StringValue `protobuf:"bytes,3,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
  618. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  619. XXX_unrecognized []byte `json:"-"`
  620. XXX_sizecache int32 `json:"-"`
  621. }
  622. func (m *DateSpecificRuleUserListInfo) Reset() { *m = DateSpecificRuleUserListInfo{} }
  623. func (m *DateSpecificRuleUserListInfo) String() string { return proto.CompactTextString(m) }
  624. func (*DateSpecificRuleUserListInfo) ProtoMessage() {}
  625. func (*DateSpecificRuleUserListInfo) Descriptor() ([]byte, []int) {
  626. return fileDescriptor_user_lists_e793ce52c6899d12, []int{9}
  627. }
  628. func (m *DateSpecificRuleUserListInfo) XXX_Unmarshal(b []byte) error {
  629. return xxx_messageInfo_DateSpecificRuleUserListInfo.Unmarshal(m, b)
  630. }
  631. func (m *DateSpecificRuleUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  632. return xxx_messageInfo_DateSpecificRuleUserListInfo.Marshal(b, m, deterministic)
  633. }
  634. func (dst *DateSpecificRuleUserListInfo) XXX_Merge(src proto.Message) {
  635. xxx_messageInfo_DateSpecificRuleUserListInfo.Merge(dst, src)
  636. }
  637. func (m *DateSpecificRuleUserListInfo) XXX_Size() int {
  638. return xxx_messageInfo_DateSpecificRuleUserListInfo.Size(m)
  639. }
  640. func (m *DateSpecificRuleUserListInfo) XXX_DiscardUnknown() {
  641. xxx_messageInfo_DateSpecificRuleUserListInfo.DiscardUnknown(m)
  642. }
  643. var xxx_messageInfo_DateSpecificRuleUserListInfo proto.InternalMessageInfo
  644. func (m *DateSpecificRuleUserListInfo) GetRule() *UserListRuleInfo {
  645. if m != nil {
  646. return m.Rule
  647. }
  648. return nil
  649. }
  650. func (m *DateSpecificRuleUserListInfo) GetStartDate() *wrappers.StringValue {
  651. if m != nil {
  652. return m.StartDate
  653. }
  654. return nil
  655. }
  656. func (m *DateSpecificRuleUserListInfo) GetEndDate() *wrappers.StringValue {
  657. if m != nil {
  658. return m.EndDate
  659. }
  660. return nil
  661. }
  662. // Visitors of a page. The page visit is defined by one boolean rule expression.
  663. type ExpressionRuleUserListInfo struct {
  664. // Boolean rule that defines this user list. The rule consists of a list of
  665. // rule item groups and each rule item group consists of a list of rule items.
  666. // All the rule item groups are ORed or ANDed together for evaluation based on
  667. // rule.rule_type.
  668. //
  669. // Required for creating an expression rule user list.
  670. Rule *UserListRuleInfo `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"`
  671. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  672. XXX_unrecognized []byte `json:"-"`
  673. XXX_sizecache int32 `json:"-"`
  674. }
  675. func (m *ExpressionRuleUserListInfo) Reset() { *m = ExpressionRuleUserListInfo{} }
  676. func (m *ExpressionRuleUserListInfo) String() string { return proto.CompactTextString(m) }
  677. func (*ExpressionRuleUserListInfo) ProtoMessage() {}
  678. func (*ExpressionRuleUserListInfo) Descriptor() ([]byte, []int) {
  679. return fileDescriptor_user_lists_e793ce52c6899d12, []int{10}
  680. }
  681. func (m *ExpressionRuleUserListInfo) XXX_Unmarshal(b []byte) error {
  682. return xxx_messageInfo_ExpressionRuleUserListInfo.Unmarshal(m, b)
  683. }
  684. func (m *ExpressionRuleUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  685. return xxx_messageInfo_ExpressionRuleUserListInfo.Marshal(b, m, deterministic)
  686. }
  687. func (dst *ExpressionRuleUserListInfo) XXX_Merge(src proto.Message) {
  688. xxx_messageInfo_ExpressionRuleUserListInfo.Merge(dst, src)
  689. }
  690. func (m *ExpressionRuleUserListInfo) XXX_Size() int {
  691. return xxx_messageInfo_ExpressionRuleUserListInfo.Size(m)
  692. }
  693. func (m *ExpressionRuleUserListInfo) XXX_DiscardUnknown() {
  694. xxx_messageInfo_ExpressionRuleUserListInfo.DiscardUnknown(m)
  695. }
  696. var xxx_messageInfo_ExpressionRuleUserListInfo proto.InternalMessageInfo
  697. func (m *ExpressionRuleUserListInfo) GetRule() *UserListRuleInfo {
  698. if m != nil {
  699. return m.Rule
  700. }
  701. return nil
  702. }
  703. // Representation of a userlist that is generated by a rule.
  704. type RuleBasedUserListInfo struct {
  705. // The status of pre-population. The field is default to NONE if not set which
  706. // means the previous users will not be considered. If set to REQUESTED, past
  707. // site visitors or app users who match the list definition will be included
  708. // in the list (works on the Display Network only). This will only
  709. // add past users from within the last 30 days, depending on the
  710. // list's membership duration and the date when the remarketing tag is added.
  711. // The status will be updated to FINISHED once request is processed, or FAILED
  712. // if the request fails.
  713. PrepopulationStatus enums.UserListPrepopulationStatusEnum_UserListPrepopulationStatus `protobuf:"varint,1,opt,name=prepopulation_status,json=prepopulationStatus,proto3,enum=google.ads.googleads.v1.enums.UserListPrepopulationStatusEnum_UserListPrepopulationStatus" json:"prepopulation_status,omitempty"`
  714. // Subtypes of rule based user lists.
  715. //
  716. // Types that are valid to be assigned to RuleBasedUserList:
  717. // *RuleBasedUserListInfo_CombinedRuleUserList
  718. // *RuleBasedUserListInfo_DateSpecificRuleUserList
  719. // *RuleBasedUserListInfo_ExpressionRuleUserList
  720. RuleBasedUserList isRuleBasedUserListInfo_RuleBasedUserList `protobuf_oneof:"rule_based_user_list"`
  721. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  722. XXX_unrecognized []byte `json:"-"`
  723. XXX_sizecache int32 `json:"-"`
  724. }
  725. func (m *RuleBasedUserListInfo) Reset() { *m = RuleBasedUserListInfo{} }
  726. func (m *RuleBasedUserListInfo) String() string { return proto.CompactTextString(m) }
  727. func (*RuleBasedUserListInfo) ProtoMessage() {}
  728. func (*RuleBasedUserListInfo) Descriptor() ([]byte, []int) {
  729. return fileDescriptor_user_lists_e793ce52c6899d12, []int{11}
  730. }
  731. func (m *RuleBasedUserListInfo) XXX_Unmarshal(b []byte) error {
  732. return xxx_messageInfo_RuleBasedUserListInfo.Unmarshal(m, b)
  733. }
  734. func (m *RuleBasedUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  735. return xxx_messageInfo_RuleBasedUserListInfo.Marshal(b, m, deterministic)
  736. }
  737. func (dst *RuleBasedUserListInfo) XXX_Merge(src proto.Message) {
  738. xxx_messageInfo_RuleBasedUserListInfo.Merge(dst, src)
  739. }
  740. func (m *RuleBasedUserListInfo) XXX_Size() int {
  741. return xxx_messageInfo_RuleBasedUserListInfo.Size(m)
  742. }
  743. func (m *RuleBasedUserListInfo) XXX_DiscardUnknown() {
  744. xxx_messageInfo_RuleBasedUserListInfo.DiscardUnknown(m)
  745. }
  746. var xxx_messageInfo_RuleBasedUserListInfo proto.InternalMessageInfo
  747. func (m *RuleBasedUserListInfo) GetPrepopulationStatus() enums.UserListPrepopulationStatusEnum_UserListPrepopulationStatus {
  748. if m != nil {
  749. return m.PrepopulationStatus
  750. }
  751. return enums.UserListPrepopulationStatusEnum_UNSPECIFIED
  752. }
  753. type isRuleBasedUserListInfo_RuleBasedUserList interface {
  754. isRuleBasedUserListInfo_RuleBasedUserList()
  755. }
  756. type RuleBasedUserListInfo_CombinedRuleUserList struct {
  757. CombinedRuleUserList *CombinedRuleUserListInfo `protobuf:"bytes,2,opt,name=combined_rule_user_list,json=combinedRuleUserList,proto3,oneof"`
  758. }
  759. type RuleBasedUserListInfo_DateSpecificRuleUserList struct {
  760. DateSpecificRuleUserList *DateSpecificRuleUserListInfo `protobuf:"bytes,3,opt,name=date_specific_rule_user_list,json=dateSpecificRuleUserList,proto3,oneof"`
  761. }
  762. type RuleBasedUserListInfo_ExpressionRuleUserList struct {
  763. ExpressionRuleUserList *ExpressionRuleUserListInfo `protobuf:"bytes,4,opt,name=expression_rule_user_list,json=expressionRuleUserList,proto3,oneof"`
  764. }
  765. func (*RuleBasedUserListInfo_CombinedRuleUserList) isRuleBasedUserListInfo_RuleBasedUserList() {}
  766. func (*RuleBasedUserListInfo_DateSpecificRuleUserList) isRuleBasedUserListInfo_RuleBasedUserList() {}
  767. func (*RuleBasedUserListInfo_ExpressionRuleUserList) isRuleBasedUserListInfo_RuleBasedUserList() {}
  768. func (m *RuleBasedUserListInfo) GetRuleBasedUserList() isRuleBasedUserListInfo_RuleBasedUserList {
  769. if m != nil {
  770. return m.RuleBasedUserList
  771. }
  772. return nil
  773. }
  774. func (m *RuleBasedUserListInfo) GetCombinedRuleUserList() *CombinedRuleUserListInfo {
  775. if x, ok := m.GetRuleBasedUserList().(*RuleBasedUserListInfo_CombinedRuleUserList); ok {
  776. return x.CombinedRuleUserList
  777. }
  778. return nil
  779. }
  780. func (m *RuleBasedUserListInfo) GetDateSpecificRuleUserList() *DateSpecificRuleUserListInfo {
  781. if x, ok := m.GetRuleBasedUserList().(*RuleBasedUserListInfo_DateSpecificRuleUserList); ok {
  782. return x.DateSpecificRuleUserList
  783. }
  784. return nil
  785. }
  786. func (m *RuleBasedUserListInfo) GetExpressionRuleUserList() *ExpressionRuleUserListInfo {
  787. if x, ok := m.GetRuleBasedUserList().(*RuleBasedUserListInfo_ExpressionRuleUserList); ok {
  788. return x.ExpressionRuleUserList
  789. }
  790. return nil
  791. }
  792. // XXX_OneofFuncs is for the internal use of the proto package.
  793. func (*RuleBasedUserListInfo) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  794. return _RuleBasedUserListInfo_OneofMarshaler, _RuleBasedUserListInfo_OneofUnmarshaler, _RuleBasedUserListInfo_OneofSizer, []interface{}{
  795. (*RuleBasedUserListInfo_CombinedRuleUserList)(nil),
  796. (*RuleBasedUserListInfo_DateSpecificRuleUserList)(nil),
  797. (*RuleBasedUserListInfo_ExpressionRuleUserList)(nil),
  798. }
  799. }
  800. func _RuleBasedUserListInfo_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  801. m := msg.(*RuleBasedUserListInfo)
  802. // rule_based_user_list
  803. switch x := m.RuleBasedUserList.(type) {
  804. case *RuleBasedUserListInfo_CombinedRuleUserList:
  805. b.EncodeVarint(2<<3 | proto.WireBytes)
  806. if err := b.EncodeMessage(x.CombinedRuleUserList); err != nil {
  807. return err
  808. }
  809. case *RuleBasedUserListInfo_DateSpecificRuleUserList:
  810. b.EncodeVarint(3<<3 | proto.WireBytes)
  811. if err := b.EncodeMessage(x.DateSpecificRuleUserList); err != nil {
  812. return err
  813. }
  814. case *RuleBasedUserListInfo_ExpressionRuleUserList:
  815. b.EncodeVarint(4<<3 | proto.WireBytes)
  816. if err := b.EncodeMessage(x.ExpressionRuleUserList); err != nil {
  817. return err
  818. }
  819. case nil:
  820. default:
  821. return fmt.Errorf("RuleBasedUserListInfo.RuleBasedUserList has unexpected type %T", x)
  822. }
  823. return nil
  824. }
  825. func _RuleBasedUserListInfo_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  826. m := msg.(*RuleBasedUserListInfo)
  827. switch tag {
  828. case 2: // rule_based_user_list.combined_rule_user_list
  829. if wire != proto.WireBytes {
  830. return true, proto.ErrInternalBadWireType
  831. }
  832. msg := new(CombinedRuleUserListInfo)
  833. err := b.DecodeMessage(msg)
  834. m.RuleBasedUserList = &RuleBasedUserListInfo_CombinedRuleUserList{msg}
  835. return true, err
  836. case 3: // rule_based_user_list.date_specific_rule_user_list
  837. if wire != proto.WireBytes {
  838. return true, proto.ErrInternalBadWireType
  839. }
  840. msg := new(DateSpecificRuleUserListInfo)
  841. err := b.DecodeMessage(msg)
  842. m.RuleBasedUserList = &RuleBasedUserListInfo_DateSpecificRuleUserList{msg}
  843. return true, err
  844. case 4: // rule_based_user_list.expression_rule_user_list
  845. if wire != proto.WireBytes {
  846. return true, proto.ErrInternalBadWireType
  847. }
  848. msg := new(ExpressionRuleUserListInfo)
  849. err := b.DecodeMessage(msg)
  850. m.RuleBasedUserList = &RuleBasedUserListInfo_ExpressionRuleUserList{msg}
  851. return true, err
  852. default:
  853. return false, nil
  854. }
  855. }
  856. func _RuleBasedUserListInfo_OneofSizer(msg proto.Message) (n int) {
  857. m := msg.(*RuleBasedUserListInfo)
  858. // rule_based_user_list
  859. switch x := m.RuleBasedUserList.(type) {
  860. case *RuleBasedUserListInfo_CombinedRuleUserList:
  861. s := proto.Size(x.CombinedRuleUserList)
  862. n += 1 // tag and wire
  863. n += proto.SizeVarint(uint64(s))
  864. n += s
  865. case *RuleBasedUserListInfo_DateSpecificRuleUserList:
  866. s := proto.Size(x.DateSpecificRuleUserList)
  867. n += 1 // tag and wire
  868. n += proto.SizeVarint(uint64(s))
  869. n += s
  870. case *RuleBasedUserListInfo_ExpressionRuleUserList:
  871. s := proto.Size(x.ExpressionRuleUserList)
  872. n += 1 // tag and wire
  873. n += proto.SizeVarint(uint64(s))
  874. n += s
  875. case nil:
  876. default:
  877. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  878. }
  879. return n
  880. }
  881. // Represents a user list that is a custom combination of user lists.
  882. type LogicalUserListInfo struct {
  883. // Logical list rules that define this user list. The rules are defined as a
  884. // logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are
  885. // ANDed when they are evaluated.
  886. //
  887. // Required for creating a logical user list.
  888. Rules []*UserListLogicalRuleInfo `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
  889. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  890. XXX_unrecognized []byte `json:"-"`
  891. XXX_sizecache int32 `json:"-"`
  892. }
  893. func (m *LogicalUserListInfo) Reset() { *m = LogicalUserListInfo{} }
  894. func (m *LogicalUserListInfo) String() string { return proto.CompactTextString(m) }
  895. func (*LogicalUserListInfo) ProtoMessage() {}
  896. func (*LogicalUserListInfo) Descriptor() ([]byte, []int) {
  897. return fileDescriptor_user_lists_e793ce52c6899d12, []int{12}
  898. }
  899. func (m *LogicalUserListInfo) XXX_Unmarshal(b []byte) error {
  900. return xxx_messageInfo_LogicalUserListInfo.Unmarshal(m, b)
  901. }
  902. func (m *LogicalUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  903. return xxx_messageInfo_LogicalUserListInfo.Marshal(b, m, deterministic)
  904. }
  905. func (dst *LogicalUserListInfo) XXX_Merge(src proto.Message) {
  906. xxx_messageInfo_LogicalUserListInfo.Merge(dst, src)
  907. }
  908. func (m *LogicalUserListInfo) XXX_Size() int {
  909. return xxx_messageInfo_LogicalUserListInfo.Size(m)
  910. }
  911. func (m *LogicalUserListInfo) XXX_DiscardUnknown() {
  912. xxx_messageInfo_LogicalUserListInfo.DiscardUnknown(m)
  913. }
  914. var xxx_messageInfo_LogicalUserListInfo proto.InternalMessageInfo
  915. func (m *LogicalUserListInfo) GetRules() []*UserListLogicalRuleInfo {
  916. if m != nil {
  917. return m.Rules
  918. }
  919. return nil
  920. }
  921. // A user list logical rule. A rule has a logical operator (and/or/not) and a
  922. // list of user lists as operands.
  923. type UserListLogicalRuleInfo struct {
  924. // The logical operator of the rule.
  925. Operator enums.UserListLogicalRuleOperatorEnum_UserListLogicalRuleOperator `protobuf:"varint,1,opt,name=operator,proto3,enum=google.ads.googleads.v1.enums.UserListLogicalRuleOperatorEnum_UserListLogicalRuleOperator" json:"operator,omitempty"`
  926. // The list of operands of the rule.
  927. RuleOperands []*LogicalUserListOperandInfo `protobuf:"bytes,2,rep,name=rule_operands,json=ruleOperands,proto3" json:"rule_operands,omitempty"`
  928. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  929. XXX_unrecognized []byte `json:"-"`
  930. XXX_sizecache int32 `json:"-"`
  931. }
  932. func (m *UserListLogicalRuleInfo) Reset() { *m = UserListLogicalRuleInfo{} }
  933. func (m *UserListLogicalRuleInfo) String() string { return proto.CompactTextString(m) }
  934. func (*UserListLogicalRuleInfo) ProtoMessage() {}
  935. func (*UserListLogicalRuleInfo) Descriptor() ([]byte, []int) {
  936. return fileDescriptor_user_lists_e793ce52c6899d12, []int{13}
  937. }
  938. func (m *UserListLogicalRuleInfo) XXX_Unmarshal(b []byte) error {
  939. return xxx_messageInfo_UserListLogicalRuleInfo.Unmarshal(m, b)
  940. }
  941. func (m *UserListLogicalRuleInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  942. return xxx_messageInfo_UserListLogicalRuleInfo.Marshal(b, m, deterministic)
  943. }
  944. func (dst *UserListLogicalRuleInfo) XXX_Merge(src proto.Message) {
  945. xxx_messageInfo_UserListLogicalRuleInfo.Merge(dst, src)
  946. }
  947. func (m *UserListLogicalRuleInfo) XXX_Size() int {
  948. return xxx_messageInfo_UserListLogicalRuleInfo.Size(m)
  949. }
  950. func (m *UserListLogicalRuleInfo) XXX_DiscardUnknown() {
  951. xxx_messageInfo_UserListLogicalRuleInfo.DiscardUnknown(m)
  952. }
  953. var xxx_messageInfo_UserListLogicalRuleInfo proto.InternalMessageInfo
  954. func (m *UserListLogicalRuleInfo) GetOperator() enums.UserListLogicalRuleOperatorEnum_UserListLogicalRuleOperator {
  955. if m != nil {
  956. return m.Operator
  957. }
  958. return enums.UserListLogicalRuleOperatorEnum_UNSPECIFIED
  959. }
  960. func (m *UserListLogicalRuleInfo) GetRuleOperands() []*LogicalUserListOperandInfo {
  961. if m != nil {
  962. return m.RuleOperands
  963. }
  964. return nil
  965. }
  966. // Operand of logical user list that consists of a user list.
  967. type LogicalUserListOperandInfo struct {
  968. // Resource name of a user list as an operand.
  969. UserList *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_list,json=userList,proto3" json:"user_list,omitempty"`
  970. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  971. XXX_unrecognized []byte `json:"-"`
  972. XXX_sizecache int32 `json:"-"`
  973. }
  974. func (m *LogicalUserListOperandInfo) Reset() { *m = LogicalUserListOperandInfo{} }
  975. func (m *LogicalUserListOperandInfo) String() string { return proto.CompactTextString(m) }
  976. func (*LogicalUserListOperandInfo) ProtoMessage() {}
  977. func (*LogicalUserListOperandInfo) Descriptor() ([]byte, []int) {
  978. return fileDescriptor_user_lists_e793ce52c6899d12, []int{14}
  979. }
  980. func (m *LogicalUserListOperandInfo) XXX_Unmarshal(b []byte) error {
  981. return xxx_messageInfo_LogicalUserListOperandInfo.Unmarshal(m, b)
  982. }
  983. func (m *LogicalUserListOperandInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  984. return xxx_messageInfo_LogicalUserListOperandInfo.Marshal(b, m, deterministic)
  985. }
  986. func (dst *LogicalUserListOperandInfo) XXX_Merge(src proto.Message) {
  987. xxx_messageInfo_LogicalUserListOperandInfo.Merge(dst, src)
  988. }
  989. func (m *LogicalUserListOperandInfo) XXX_Size() int {
  990. return xxx_messageInfo_LogicalUserListOperandInfo.Size(m)
  991. }
  992. func (m *LogicalUserListOperandInfo) XXX_DiscardUnknown() {
  993. xxx_messageInfo_LogicalUserListOperandInfo.DiscardUnknown(m)
  994. }
  995. var xxx_messageInfo_LogicalUserListOperandInfo proto.InternalMessageInfo
  996. func (m *LogicalUserListOperandInfo) GetUserList() *wrappers.StringValue {
  997. if m != nil {
  998. return m.UserList
  999. }
  1000. return nil
  1001. }
  1002. // User list targeting as a collection of conversions or remarketing actions.
  1003. type BasicUserListInfo struct {
  1004. // Actions associated with this user list.
  1005. Actions []*UserListActionInfo `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"`
  1006. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1007. XXX_unrecognized []byte `json:"-"`
  1008. XXX_sizecache int32 `json:"-"`
  1009. }
  1010. func (m *BasicUserListInfo) Reset() { *m = BasicUserListInfo{} }
  1011. func (m *BasicUserListInfo) String() string { return proto.CompactTextString(m) }
  1012. func (*BasicUserListInfo) ProtoMessage() {}
  1013. func (*BasicUserListInfo) Descriptor() ([]byte, []int) {
  1014. return fileDescriptor_user_lists_e793ce52c6899d12, []int{15}
  1015. }
  1016. func (m *BasicUserListInfo) XXX_Unmarshal(b []byte) error {
  1017. return xxx_messageInfo_BasicUserListInfo.Unmarshal(m, b)
  1018. }
  1019. func (m *BasicUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1020. return xxx_messageInfo_BasicUserListInfo.Marshal(b, m, deterministic)
  1021. }
  1022. func (dst *BasicUserListInfo) XXX_Merge(src proto.Message) {
  1023. xxx_messageInfo_BasicUserListInfo.Merge(dst, src)
  1024. }
  1025. func (m *BasicUserListInfo) XXX_Size() int {
  1026. return xxx_messageInfo_BasicUserListInfo.Size(m)
  1027. }
  1028. func (m *BasicUserListInfo) XXX_DiscardUnknown() {
  1029. xxx_messageInfo_BasicUserListInfo.DiscardUnknown(m)
  1030. }
  1031. var xxx_messageInfo_BasicUserListInfo proto.InternalMessageInfo
  1032. func (m *BasicUserListInfo) GetActions() []*UserListActionInfo {
  1033. if m != nil {
  1034. return m.Actions
  1035. }
  1036. return nil
  1037. }
  1038. // Represents an action type used for building remarketing user lists.
  1039. type UserListActionInfo struct {
  1040. // Subtypes of user list action.
  1041. //
  1042. // Types that are valid to be assigned to UserListAction:
  1043. // *UserListActionInfo_ConversionAction
  1044. // *UserListActionInfo_RemarketingAction
  1045. UserListAction isUserListActionInfo_UserListAction `protobuf_oneof:"user_list_action"`
  1046. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1047. XXX_unrecognized []byte `json:"-"`
  1048. XXX_sizecache int32 `json:"-"`
  1049. }
  1050. func (m *UserListActionInfo) Reset() { *m = UserListActionInfo{} }
  1051. func (m *UserListActionInfo) String() string { return proto.CompactTextString(m) }
  1052. func (*UserListActionInfo) ProtoMessage() {}
  1053. func (*UserListActionInfo) Descriptor() ([]byte, []int) {
  1054. return fileDescriptor_user_lists_e793ce52c6899d12, []int{16}
  1055. }
  1056. func (m *UserListActionInfo) XXX_Unmarshal(b []byte) error {
  1057. return xxx_messageInfo_UserListActionInfo.Unmarshal(m, b)
  1058. }
  1059. func (m *UserListActionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1060. return xxx_messageInfo_UserListActionInfo.Marshal(b, m, deterministic)
  1061. }
  1062. func (dst *UserListActionInfo) XXX_Merge(src proto.Message) {
  1063. xxx_messageInfo_UserListActionInfo.Merge(dst, src)
  1064. }
  1065. func (m *UserListActionInfo) XXX_Size() int {
  1066. return xxx_messageInfo_UserListActionInfo.Size(m)
  1067. }
  1068. func (m *UserListActionInfo) XXX_DiscardUnknown() {
  1069. xxx_messageInfo_UserListActionInfo.DiscardUnknown(m)
  1070. }
  1071. var xxx_messageInfo_UserListActionInfo proto.InternalMessageInfo
  1072. type isUserListActionInfo_UserListAction interface {
  1073. isUserListActionInfo_UserListAction()
  1074. }
  1075. type UserListActionInfo_ConversionAction struct {
  1076. ConversionAction *wrappers.StringValue `protobuf:"bytes,1,opt,name=conversion_action,json=conversionAction,proto3,oneof"`
  1077. }
  1078. type UserListActionInfo_RemarketingAction struct {
  1079. RemarketingAction *wrappers.StringValue `protobuf:"bytes,2,opt,name=remarketing_action,json=remarketingAction,proto3,oneof"`
  1080. }
  1081. func (*UserListActionInfo_ConversionAction) isUserListActionInfo_UserListAction() {}
  1082. func (*UserListActionInfo_RemarketingAction) isUserListActionInfo_UserListAction() {}
  1083. func (m *UserListActionInfo) GetUserListAction() isUserListActionInfo_UserListAction {
  1084. if m != nil {
  1085. return m.UserListAction
  1086. }
  1087. return nil
  1088. }
  1089. func (m *UserListActionInfo) GetConversionAction() *wrappers.StringValue {
  1090. if x, ok := m.GetUserListAction().(*UserListActionInfo_ConversionAction); ok {
  1091. return x.ConversionAction
  1092. }
  1093. return nil
  1094. }
  1095. func (m *UserListActionInfo) GetRemarketingAction() *wrappers.StringValue {
  1096. if x, ok := m.GetUserListAction().(*UserListActionInfo_RemarketingAction); ok {
  1097. return x.RemarketingAction
  1098. }
  1099. return nil
  1100. }
  1101. // XXX_OneofFuncs is for the internal use of the proto package.
  1102. func (*UserListActionInfo) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  1103. return _UserListActionInfo_OneofMarshaler, _UserListActionInfo_OneofUnmarshaler, _UserListActionInfo_OneofSizer, []interface{}{
  1104. (*UserListActionInfo_ConversionAction)(nil),
  1105. (*UserListActionInfo_RemarketingAction)(nil),
  1106. }
  1107. }
  1108. func _UserListActionInfo_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  1109. m := msg.(*UserListActionInfo)
  1110. // user_list_action
  1111. switch x := m.UserListAction.(type) {
  1112. case *UserListActionInfo_ConversionAction:
  1113. b.EncodeVarint(1<<3 | proto.WireBytes)
  1114. if err := b.EncodeMessage(x.ConversionAction); err != nil {
  1115. return err
  1116. }
  1117. case *UserListActionInfo_RemarketingAction:
  1118. b.EncodeVarint(2<<3 | proto.WireBytes)
  1119. if err := b.EncodeMessage(x.RemarketingAction); err != nil {
  1120. return err
  1121. }
  1122. case nil:
  1123. default:
  1124. return fmt.Errorf("UserListActionInfo.UserListAction has unexpected type %T", x)
  1125. }
  1126. return nil
  1127. }
  1128. func _UserListActionInfo_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  1129. m := msg.(*UserListActionInfo)
  1130. switch tag {
  1131. case 1: // user_list_action.conversion_action
  1132. if wire != proto.WireBytes {
  1133. return true, proto.ErrInternalBadWireType
  1134. }
  1135. msg := new(wrappers.StringValue)
  1136. err := b.DecodeMessage(msg)
  1137. m.UserListAction = &UserListActionInfo_ConversionAction{msg}
  1138. return true, err
  1139. case 2: // user_list_action.remarketing_action
  1140. if wire != proto.WireBytes {
  1141. return true, proto.ErrInternalBadWireType
  1142. }
  1143. msg := new(wrappers.StringValue)
  1144. err := b.DecodeMessage(msg)
  1145. m.UserListAction = &UserListActionInfo_RemarketingAction{msg}
  1146. return true, err
  1147. default:
  1148. return false, nil
  1149. }
  1150. }
  1151. func _UserListActionInfo_OneofSizer(msg proto.Message) (n int) {
  1152. m := msg.(*UserListActionInfo)
  1153. // user_list_action
  1154. switch x := m.UserListAction.(type) {
  1155. case *UserListActionInfo_ConversionAction:
  1156. s := proto.Size(x.ConversionAction)
  1157. n += 1 // tag and wire
  1158. n += proto.SizeVarint(uint64(s))
  1159. n += s
  1160. case *UserListActionInfo_RemarketingAction:
  1161. s := proto.Size(x.RemarketingAction)
  1162. n += 1 // tag and wire
  1163. n += proto.SizeVarint(uint64(s))
  1164. n += s
  1165. case nil:
  1166. default:
  1167. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  1168. }
  1169. return n
  1170. }
  1171. func init() {
  1172. proto.RegisterType((*SimilarUserListInfo)(nil), "google.ads.googleads.v1.common.SimilarUserListInfo")
  1173. proto.RegisterType((*CrmBasedUserListInfo)(nil), "google.ads.googleads.v1.common.CrmBasedUserListInfo")
  1174. proto.RegisterType((*UserListRuleInfo)(nil), "google.ads.googleads.v1.common.UserListRuleInfo")
  1175. proto.RegisterType((*UserListRuleItemGroupInfo)(nil), "google.ads.googleads.v1.common.UserListRuleItemGroupInfo")
  1176. proto.RegisterType((*UserListRuleItemInfo)(nil), "google.ads.googleads.v1.common.UserListRuleItemInfo")
  1177. proto.RegisterType((*UserListDateRuleItemInfo)(nil), "google.ads.googleads.v1.common.UserListDateRuleItemInfo")
  1178. proto.RegisterType((*UserListNumberRuleItemInfo)(nil), "google.ads.googleads.v1.common.UserListNumberRuleItemInfo")
  1179. proto.RegisterType((*UserListStringRuleItemInfo)(nil), "google.ads.googleads.v1.common.UserListStringRuleItemInfo")
  1180. proto.RegisterType((*CombinedRuleUserListInfo)(nil), "google.ads.googleads.v1.common.CombinedRuleUserListInfo")
  1181. proto.RegisterType((*DateSpecificRuleUserListInfo)(nil), "google.ads.googleads.v1.common.DateSpecificRuleUserListInfo")
  1182. proto.RegisterType((*ExpressionRuleUserListInfo)(nil), "google.ads.googleads.v1.common.ExpressionRuleUserListInfo")
  1183. proto.RegisterType((*RuleBasedUserListInfo)(nil), "google.ads.googleads.v1.common.RuleBasedUserListInfo")
  1184. proto.RegisterType((*LogicalUserListInfo)(nil), "google.ads.googleads.v1.common.LogicalUserListInfo")
  1185. proto.RegisterType((*UserListLogicalRuleInfo)(nil), "google.ads.googleads.v1.common.UserListLogicalRuleInfo")
  1186. proto.RegisterType((*LogicalUserListOperandInfo)(nil), "google.ads.googleads.v1.common.LogicalUserListOperandInfo")
  1187. proto.RegisterType((*BasicUserListInfo)(nil), "google.ads.googleads.v1.common.BasicUserListInfo")
  1188. proto.RegisterType((*UserListActionInfo)(nil), "google.ads.googleads.v1.common.UserListActionInfo")
  1189. }
  1190. func init() {
  1191. proto.RegisterFile("google/ads/googleads/v1/common/user_lists.proto", fileDescriptor_user_lists_e793ce52c6899d12)
  1192. }
  1193. var fileDescriptor_user_lists_e793ce52c6899d12 = []byte{
  1194. // 1306 bytes of a gzipped FileDescriptorProto
  1195. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x41, 0x6f, 0xdb, 0xb6,
  1196. 0x17, 0x8f, 0x9c, 0xb4, 0x4d, 0x98, 0xd4, 0xff, 0x94, 0xcd, 0xbf, 0x75, 0xbd, 0xa0, 0x28, 0x74,
  1197. 0xea, 0x49, 0x6e, 0xdc, 0x62, 0x5d, 0xdd, 0x5d, 0xec, 0xb8, 0x48, 0x82, 0xb6, 0x6b, 0x21, 0x2f,
  1198. 0xd9, 0x56, 0x04, 0x50, 0x69, 0x89, 0x76, 0x85, 0x4a, 0xa4, 0x46, 0x4a, 0x69, 0x0d, 0x0c, 0xc3,
  1199. 0x76, 0xda, 0x61, 0xd8, 0x97, 0xd8, 0x71, 0xfb, 0x1a, 0x3b, 0xf5, 0x30, 0x60, 0xd7, 0x7d, 0x83,
  1200. 0xed, 0xb8, 0x4f, 0x30, 0x90, 0xa2, 0x6c, 0xc9, 0x96, 0x12, 0xa6, 0xc5, 0x4e, 0xa6, 0xc8, 0xf7,
  1201. 0x7e, 0xef, 0xc7, 0xc7, 0x1f, 0x1f, 0x49, 0x83, 0xd6, 0x98, 0xd2, 0x71, 0x80, 0x5b, 0xc8, 0xe3,
  1202. 0xaa, 0x29, 0x5a, 0x27, 0x3b, 0x2d, 0x97, 0x86, 0x21, 0x25, 0xad, 0x84, 0x63, 0xe6, 0x04, 0x3e,
  1203. 0x8f, 0xb9, 0x15, 0x31, 0x1a, 0x53, 0x78, 0x33, 0xb5, 0xb2, 0x90, 0xc7, 0xad, 0xa9, 0x83, 0x75,
  1204. 0xb2, 0x63, 0xa5, 0x0e, 0xcd, 0x5e, 0x15, 0x20, 0x26, 0x49, 0xc8, 0x5b, 0x6e, 0xc2, 0x63, 0x1a,
  1205. 0x62, 0xe6, 0x84, 0x28, 0x76, 0x5f, 0x39, 0x49, 0x14, 0x50, 0xe4, 0x39, 0xaf, 0xf1, 0xc4, 0x89,
  1206. 0x27, 0x11, 0x4e, 0x63, 0x34, 0xfb, 0xa7, 0x63, 0x4c, 0x39, 0x39, 0x2e, 0x0d, 0x87, 0x3e, 0xc1,
  1207. 0x9e, 0xc3, 0x92, 0x00, 0x3b, 0x34, 0xc2, 0x0c, 0xc5, 0x94, 0x29, 0x94, 0x9e, 0x36, 0x0a, 0x0b,
  1208. 0x1d, 0x0f, 0xc5, 0xc8, 0xe1, 0x34, 0x61, 0x2e, 0xce, 0x33, 0x79, 0xa4, 0x8b, 0xe1, 0xa1, 0x18,
  1209. 0xa7, 0x2c, 0xfc, 0x18, 0x87, 0xf3, 0x54, 0x76, 0x75, 0x61, 0x02, 0x3a, 0xf6, 0x5d, 0x14, 0x94,
  1210. 0xce, 0x67, 0x4f, 0x17, 0x84, 0x24, 0xe1, 0x10, 0xb3, 0x6a, 0x36, 0xda, 0x89, 0x89, 0x18, 0x8e,
  1211. 0x68, 0x94, 0x04, 0x28, 0xf6, 0x29, 0x71, 0x78, 0x8c, 0xe2, 0x44, 0xc9, 0xa0, 0x79, 0x5f, 0x17,
  1212. 0x43, 0xb2, 0xc8, 0x65, 0x54, 0x7b, 0x16, 0x3c, 0x66, 0x3e, 0x19, 0x57, 0xcf, 0x42, 0x09, 0xb1,
  1213. 0x25, 0xbf, 0x86, 0xc9, 0xa8, 0xf5, 0x86, 0xa1, 0x28, 0xc2, 0x2c, 0x63, 0xb8, 0x9d, 0x05, 0x8a,
  1214. 0xfc, 0x16, 0x22, 0x84, 0xc6, 0x72, 0x16, 0x6a, 0xd4, 0xfc, 0x0a, 0x5c, 0x1d, 0xf8, 0xa1, 0x1f,
  1215. 0x20, 0x76, 0xc8, 0x31, 0x7b, 0xe2, 0xf3, 0xf8, 0x80, 0x8c, 0x28, 0xec, 0x81, 0x3a, 0xc7, 0xd8,
  1216. 0x73, 0xa6, 0x34, 0x1a, 0xc6, 0x2d, 0xe3, 0xf6, 0x7a, 0x7b, 0x5b, 0x69, 0xdd, 0xca, 0xa2, 0x59,
  1217. 0x03, 0x49, 0xef, 0x08, 0x05, 0x09, 0xb6, 0x37, 0x84, 0x4f, 0x86, 0x63, 0xfe, 0x51, 0x03, 0x5b,
  1218. 0xbb, 0x2c, 0xec, 0x21, 0x3e, 0xeb, 0x94, 0xe0, 0x77, 0xc1, 0x45, 0x14, 0x45, 0x8e, 0xef, 0x69,
  1219. 0x81, 0x5e, 0x40, 0x51, 0x74, 0xe0, 0xc1, 0xef, 0x0c, 0xf0, 0xbf, 0xb9, 0x5d, 0xd2, 0xa8, 0xdd,
  1220. 0x32, 0x6e, 0xd7, 0xdb, 0x5f, 0x5a, 0x55, 0x5b, 0x51, 0xa6, 0xd2, 0xda, 0x55, 0x5b, 0xed, 0xa9,
  1221. 0xd8, 0x69, 0x87, 0x12, 0xe2, 0x31, 0x9e, 0x7c, 0x3e, 0x89, 0xf0, 0x23, 0x92, 0x84, 0xa7, 0x0c,
  1222. 0xdb, 0x97, 0x93, 0xfc, 0xa7, 0xa0, 0xb0, 0x39, 0xbf, 0x3f, 0x1a, 0xcb, 0x92, 0xc3, 0xd1, 0x19,
  1223. 0x1c, 0xb2, 0xf9, 0xef, 0xb2, 0xb0, 0x8f, 0x62, 0x34, 0x90, 0x00, 0x53, 0x0a, 0x95, 0xa3, 0x76,
  1224. 0xdd, 0x2b, 0x7c, 0x9b, 0x7f, 0x1a, 0x60, 0x33, 0xb3, 0xb6, 0x93, 0x00, 0xcb, 0x7c, 0x22, 0xb0,
  1225. 0x36, 0x55, 0x97, 0x4c, 0x69, 0xbd, 0xdd, 0xd7, 0xe4, 0x23, 0x30, 0x16, 0x68, 0x64, 0x9d, 0xf6,
  1226. 0x2a, 0x53, 0x2d, 0xe8, 0x82, 0xcd, 0x99, 0x00, 0xc7, 0x8c, 0x26, 0x11, 0x6f, 0xd4, 0x6e, 0x2d,
  1227. 0xdf, 0x5e, 0x6f, 0x3f, 0xb0, 0x4e, 0x2f, 0x84, 0x05, 0xd4, 0x83, 0x18, 0x87, 0x7b, 0xc2, 0x5b,
  1228. 0xf0, 0xb6, 0xeb, 0x2c, 0xdf, 0xc5, 0xcd, 0x08, 0xdc, 0xa8, 0x34, 0x86, 0x03, 0x00, 0xa6, 0x0c,
  1229. 0x78, 0xc3, 0x90, 0xb1, 0xef, 0x9d, 0x37, 0xb6, 0x0c, 0xbb, 0x96, 0x85, 0xe5, 0xe6, 0x0f, 0xcb,
  1230. 0x60, 0xab, 0xcc, 0x06, 0xde, 0x01, 0x2b, 0x04, 0x85, 0x58, 0x4b, 0xa0, 0xd2, 0x12, 0x8e, 0xc0,
  1231. 0xe6, 0x7c, 0xbd, 0x91, 0xfa, 0x5c, 0x6f, 0x77, 0x74, 0x59, 0x7e, 0x26, 0xfd, 0xf3, 0x3c, 0xf6,
  1232. 0x97, 0xec, 0x3a, 0x29, 0xf4, 0x8a, 0x38, 0xf3, 0x15, 0x41, 0x6a, 0xf0, 0x1c, 0x71, 0x52, 0xf2,
  1233. 0xf3, 0x71, 0x78, 0xa1, 0x17, 0xbe, 0x04, 0xf5, 0x62, 0x2d, 0x6f, 0xac, 0xc8, 0x28, 0x9f, 0xe8,
  1234. 0x46, 0xe9, 0xa3, 0x18, 0xcf, 0xc5, 0xd8, 0xf0, 0x72, 0x7d, 0xbd, 0x75, 0x25, 0x5b, 0x01, 0x6e,
  1235. 0xfe, 0x58, 0x03, 0x8d, 0x2a, 0x4f, 0xf8, 0x16, 0xac, 0x66, 0x45, 0x4f, 0xe9, 0xfb, 0x58, 0x53,
  1236. 0xdf, 0x79, 0xa8, 0x67, 0x0a, 0xa2, 0xa0, 0xf5, 0x32, 0x03, 0x7b, 0x1a, 0x0d, 0xb6, 0xc1, 0x85,
  1237. 0x13, 0xb1, 0xc8, 0x6a, 0x29, 0xcf, 0xa8, 0x54, 0xd2, 0x14, 0x76, 0x41, 0x9d, 0x8e, 0x46, 0x1c,
  1238. 0xc7, 0x8e, 0x4f, 0x1c, 0x0f, 0x4d, 0xb8, 0x5a, 0x9f, 0x8f, 0x16, 0x9c, 0x0f, 0x48, 0xfc, 0xf1,
  1239. 0x3d, 0x55, 0x3a, 0x53, 0x97, 0x03, 0xd2, 0x47, 0x13, 0x6e, 0xfe, 0x6e, 0x80, 0x66, 0xb5, 0x2a,
  1240. 0xe0, 0x37, 0x0b, 0xf9, 0x78, 0xa9, 0x99, 0x8f, 0x22, 0x58, 0x69, 0x46, 0xca, 0x4d, 0xce, 0x93,
  1241. 0x93, 0x3e, 0x4d, 0x86, 0x01, 0xce, 0xe7, 0xa4, 0x30, 0xa1, 0x45, 0xf9, 0x7d, 0xc0, 0x84, 0x8a,
  1242. 0x60, 0xa5, 0x13, 0x2a, 0x37, 0xf9, 0xb0, 0x45, 0x36, 0xdf, 0xd5, 0x40, 0x63, 0x57, 0xdd, 0xba,
  1243. 0x04, 0x74, 0xe1, 0x80, 0x1b, 0x80, 0x8d, 0x00, 0x8f, 0xe2, 0xf4, 0xa4, 0x26, 0xd9, 0x31, 0x77,
  1244. 0xe7, 0x5c, 0xd5, 0x4a, 0x54, 0xaa, 0x75, 0x81, 0xf2, 0x2c, 0x05, 0x81, 0x87, 0xe0, 0x32, 0xf3,
  1245. 0xc7, 0xaf, 0x66, 0xa8, 0xb5, 0xf7, 0x44, 0xdd, 0x90, 0x30, 0x19, 0xec, 0xf7, 0x06, 0xb8, 0x5c,
  1246. 0xb8, 0x65, 0xa9, 0x13, 0x4d, 0x77, 0x87, 0xe5, 0x93, 0x50, 0x9a, 0xfe, 0x32, 0x03, 0x7b, 0x83,
  1247. 0xe5, 0xbe, 0xc4, 0xa9, 0xb6, 0x2d, 0x36, 0xe2, 0x20, 0xc2, 0xae, 0x3f, 0xf2, 0xdd, 0x85, 0x84,
  1248. 0xf6, 0xc1, 0x8a, 0x70, 0x78, 0xef, 0x44, 0x4a, 0x6f, 0xf8, 0x10, 0x00, 0x1e, 0x23, 0x96, 0x5e,
  1249. 0x52, 0xb5, 0x16, 0x7b, 0x4d, 0xda, 0x0b, 0x6a, 0xf0, 0x3e, 0x58, 0xc5, 0xc4, 0x4b, 0x5d, 0x97,
  1250. 0x35, 0x5c, 0x2f, 0x61, 0xe2, 0x09, 0x47, 0x73, 0x08, 0x9a, 0x8f, 0xde, 0x46, 0x0c, 0x73, 0xee,
  1251. 0x53, 0xf2, 0xdf, 0xcc, 0xcc, 0xfc, 0x75, 0x05, 0xfc, 0x5f, 0x74, 0x2d, 0xde, 0xb5, 0x7e, 0x32,
  1252. 0xc0, 0x56, 0xd9, 0xf5, 0x55, 0x6d, 0xb3, 0x17, 0x9a, 0xab, 0xfc, 0x3c, 0x0f, 0x31, 0x90, 0x08,
  1253. 0x85, 0x45, 0x2e, 0x19, 0xb7, 0xaf, 0x46, 0x8b, 0x9d, 0xf0, 0x6b, 0x70, 0xbd, 0xf8, 0x58, 0x99,
  1254. 0xdd, 0x30, 0x6b, 0x7a, 0xe7, 0x4b, 0xd5, 0xae, 0xdb, 0x5f, 0xb2, 0xb7, 0xdc, 0x92, 0x31, 0xf8,
  1255. 0x2d, 0xd8, 0x96, 0x27, 0x19, 0x57, 0xea, 0x9a, 0x8f, 0x9b, 0xae, 0xe6, 0xa7, 0x67, 0xc5, 0x3d,
  1256. 0x4d, 0xa0, 0xfb, 0x4b, 0x76, 0xc3, 0xab, 0x18, 0x87, 0x6f, 0xc0, 0x0d, 0x3c, 0x15, 0xc0, 0x7c,
  1257. 0xf0, 0x15, 0xbd, 0xa3, 0xbb, 0x5a, 0x41, 0xfb, 0x4b, 0xf6, 0x35, 0x5c, 0x3a, 0xda, 0xbb, 0x06,
  1258. 0xb6, 0x64, 0xb4, 0xa1, 0x50, 0xc5, 0x2c, 0xa6, 0xe9, 0x81, 0xab, 0x4f, 0xd2, 0xf7, 0x55, 0x41,
  1259. 0x2a, 0x4f, 0xc1, 0x05, 0x61, 0x9e, 0x5d, 0xae, 0xee, 0xeb, 0x6a, 0x51, 0x61, 0x4d, 0x25, 0x99,
  1260. 0xa2, 0x98, 0xff, 0x18, 0xe0, 0x7a, 0x85, 0x09, 0x3c, 0x59, 0xa8, 0xf7, 0xba, 0x42, 0xcc, 0x21,
  1261. 0x95, 0x56, 0x9b, 0x92, 0xf1, 0x5c, 0xa5, 0x77, 0xf2, 0xb5, 0x8e, 0x78, 0xd9, 0x1d, 0xf6, 0xcc,
  1262. 0xf4, 0xcf, 0xa5, 0x4b, 0xd5, 0x4e, 0x55, 0x4d, 0xb3, 0x50, 0xc4, 0xe3, 0xe6, 0x17, 0xa0, 0x59,
  1263. 0x6d, 0x0b, 0x1f, 0x80, 0xb5, 0xf3, 0x3d, 0xa8, 0x56, 0x93, 0xec, 0x31, 0x85, 0xc0, 0x95, 0x1e,
  1264. 0xe2, 0xbe, 0x5b, 0x58, 0xb1, 0x27, 0xe0, 0x12, 0x72, 0xe5, 0x6b, 0x4e, 0xad, 0x59, 0x5b, 0x77,
  1265. 0xcd, 0xba, 0xd2, 0x4d, 0x4e, 0x20, 0x83, 0x30, 0x7f, 0x33, 0x00, 0x5c, 0x1c, 0x87, 0x8f, 0xc1,
  1266. 0x15, 0x97, 0x92, 0x13, 0xcc, 0xa4, 0x7c, 0x53, 0x63, 0x1d, 0xf2, 0xfb, 0x4b, 0xf6, 0xe6, 0xcc,
  1267. 0x31, 0x05, 0x84, 0x4f, 0x01, 0x64, 0x38, 0x44, 0xec, 0x35, 0x8e, 0xc5, 0x15, 0x56, 0xa1, 0xd5,
  1268. 0xb4, 0xd0, 0xae, 0xe4, 0x3c, 0x53, 0xb8, 0x1e, 0x04, 0x9b, 0xb3, 0x87, 0x72, 0x0a, 0xd6, 0xfb,
  1269. 0xcb, 0x00, 0xa6, 0x4b, 0xc3, 0x33, 0x32, 0xd1, 0xab, 0x67, 0x53, 0xe5, 0xcf, 0x45, 0xb8, 0xe7,
  1270. 0xc6, 0x0b, 0xf5, 0x6f, 0x8b, 0x35, 0xa6, 0x01, 0x22, 0x63, 0x8b, 0xb2, 0x71, 0x6b, 0x8c, 0x89,
  1271. 0x24, 0x93, 0xbd, 0xd0, 0x23, 0x9f, 0x57, 0xfd, 0x43, 0xf4, 0x30, 0xfd, 0xf9, 0xb9, 0xb6, 0xbc,
  1272. 0xd7, 0xed, 0xfe, 0x52, 0xbb, 0xb9, 0x97, 0x82, 0x75, 0x3d, 0x6e, 0xa5, 0x4d, 0xd1, 0x3a, 0xda,
  1273. 0x11, 0xe5, 0x2b, 0xa4, 0xe4, 0x5d, 0x66, 0x70, 0xdc, 0xf5, 0xf8, 0xf1, 0xd4, 0xe0, 0xf8, 0x68,
  1274. 0xe7, 0x38, 0x35, 0xf8, 0xbb, 0x66, 0xa6, 0xbd, 0x9d, 0x4e, 0xd7, 0xe3, 0x9d, 0xce, 0xd4, 0xa4,
  1275. 0xd3, 0x39, 0xda, 0xe9, 0x74, 0x52, 0xa3, 0xe1, 0x45, 0xc9, 0xee, 0xee, 0xbf, 0x01, 0x00, 0x00,
  1276. 0xff, 0xff, 0x6b, 0xb8, 0x50, 0x9f, 0xbe, 0x12, 0x00, 0x00,
  1277. }