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.
953 lines
37 KiB
953 lines
37 KiB
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// source: config.proto
|
|
|
|
package android_bundle_proto
|
|
|
|
import (
|
|
fmt "fmt"
|
|
proto "github.com/golang/protobuf/proto"
|
|
math "math"
|
|
)
|
|
|
|
// Reference imports to suppress errors if they are not otherwise used.
|
|
var _ = proto.Marshal
|
|
var _ = fmt.Errorf
|
|
var _ = math.Inf
|
|
|
|
// This is a compile-time assertion to ensure that this generated file
|
|
// is compatible with the proto package it is being compiled against.
|
|
// A compilation error at this line likely means your copy of the
|
|
// proto package needs to be updated.
|
|
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
|
|
|
type BundleConfig_BundleType int32
|
|
|
|
const (
|
|
BundleConfig_REGULAR BundleConfig_BundleType = 0
|
|
BundleConfig_APEX BundleConfig_BundleType = 1
|
|
BundleConfig_ASSET_ONLY BundleConfig_BundleType = 2
|
|
)
|
|
|
|
var BundleConfig_BundleType_name = map[int32]string{
|
|
0: "REGULAR",
|
|
1: "APEX",
|
|
2: "ASSET_ONLY",
|
|
}
|
|
|
|
var BundleConfig_BundleType_value = map[string]int32{
|
|
"REGULAR": 0,
|
|
"APEX": 1,
|
|
"ASSET_ONLY": 2,
|
|
}
|
|
|
|
func (x BundleConfig_BundleType) String() string {
|
|
return proto.EnumName(BundleConfig_BundleType_name, int32(x))
|
|
}
|
|
|
|
func (BundleConfig_BundleType) EnumDescriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{0, 0}
|
|
}
|
|
|
|
type SplitDimension_Value int32
|
|
|
|
const (
|
|
SplitDimension_UNSPECIFIED_VALUE SplitDimension_Value = 0
|
|
SplitDimension_ABI SplitDimension_Value = 1
|
|
SplitDimension_SCREEN_DENSITY SplitDimension_Value = 2
|
|
SplitDimension_LANGUAGE SplitDimension_Value = 3
|
|
SplitDimension_TEXTURE_COMPRESSION_FORMAT SplitDimension_Value = 4
|
|
// BEGIN-INTERNAL
|
|
SplitDimension_GRAPHICS_API SplitDimension_Value = 5
|
|
)
|
|
|
|
var SplitDimension_Value_name = map[int32]string{
|
|
0: "UNSPECIFIED_VALUE",
|
|
1: "ABI",
|
|
2: "SCREEN_DENSITY",
|
|
3: "LANGUAGE",
|
|
4: "TEXTURE_COMPRESSION_FORMAT",
|
|
5: "GRAPHICS_API",
|
|
}
|
|
|
|
var SplitDimension_Value_value = map[string]int32{
|
|
"UNSPECIFIED_VALUE": 0,
|
|
"ABI": 1,
|
|
"SCREEN_DENSITY": 2,
|
|
"LANGUAGE": 3,
|
|
"TEXTURE_COMPRESSION_FORMAT": 4,
|
|
"GRAPHICS_API": 5,
|
|
}
|
|
|
|
func (x SplitDimension_Value) String() string {
|
|
return proto.EnumName(SplitDimension_Value_name, int32(x))
|
|
}
|
|
|
|
func (SplitDimension_Value) EnumDescriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{9, 0}
|
|
}
|
|
|
|
type BundleConfig struct {
|
|
Bundletool *Bundletool `protobuf:"bytes,1,opt,name=bundletool,proto3" json:"bundletool,omitempty"`
|
|
Optimizations *Optimizations `protobuf:"bytes,2,opt,name=optimizations,proto3" json:"optimizations,omitempty"`
|
|
Compression *Compression `protobuf:"bytes,3,opt,name=compression,proto3" json:"compression,omitempty"`
|
|
// Resources to be always kept in the master split.
|
|
MasterResources *MasterResources `protobuf:"bytes,4,opt,name=master_resources,json=masterResources,proto3" json:"master_resources,omitempty"`
|
|
ApexConfig *ApexConfig `protobuf:"bytes,5,opt,name=apex_config,json=apexConfig,proto3" json:"apex_config,omitempty"`
|
|
// APKs to be signed with the same key as generated APKs.
|
|
UnsignedEmbeddedApkConfig []*UnsignedEmbeddedApkConfig `protobuf:"bytes,6,rep,name=unsigned_embedded_apk_config,json=unsignedEmbeddedApkConfig,proto3" json:"unsigned_embedded_apk_config,omitempty"`
|
|
AssetModulesConfig *AssetModulesConfig `protobuf:"bytes,7,opt,name=asset_modules_config,json=assetModulesConfig,proto3" json:"asset_modules_config,omitempty"`
|
|
Type BundleConfig_BundleType `protobuf:"varint,8,opt,name=type,proto3,enum=android.bundle.BundleConfig_BundleType" json:"type,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *BundleConfig) Reset() { *m = BundleConfig{} }
|
|
func (m *BundleConfig) String() string { return proto.CompactTextString(m) }
|
|
func (*BundleConfig) ProtoMessage() {}
|
|
func (*BundleConfig) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{0}
|
|
}
|
|
|
|
func (m *BundleConfig) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_BundleConfig.Unmarshal(m, b)
|
|
}
|
|
func (m *BundleConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_BundleConfig.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *BundleConfig) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_BundleConfig.Merge(m, src)
|
|
}
|
|
func (m *BundleConfig) XXX_Size() int {
|
|
return xxx_messageInfo_BundleConfig.Size(m)
|
|
}
|
|
func (m *BundleConfig) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_BundleConfig.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_BundleConfig proto.InternalMessageInfo
|
|
|
|
func (m *BundleConfig) GetBundletool() *Bundletool {
|
|
if m != nil {
|
|
return m.Bundletool
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BundleConfig) GetOptimizations() *Optimizations {
|
|
if m != nil {
|
|
return m.Optimizations
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BundleConfig) GetCompression() *Compression {
|
|
if m != nil {
|
|
return m.Compression
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BundleConfig) GetMasterResources() *MasterResources {
|
|
if m != nil {
|
|
return m.MasterResources
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BundleConfig) GetApexConfig() *ApexConfig {
|
|
if m != nil {
|
|
return m.ApexConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BundleConfig) GetUnsignedEmbeddedApkConfig() []*UnsignedEmbeddedApkConfig {
|
|
if m != nil {
|
|
return m.UnsignedEmbeddedApkConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BundleConfig) GetAssetModulesConfig() *AssetModulesConfig {
|
|
if m != nil {
|
|
return m.AssetModulesConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BundleConfig) GetType() BundleConfig_BundleType {
|
|
if m != nil {
|
|
return m.Type
|
|
}
|
|
return BundleConfig_REGULAR
|
|
}
|
|
|
|
type Bundletool struct {
|
|
// Version of BundleTool used to build the Bundle.
|
|
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *Bundletool) Reset() { *m = Bundletool{} }
|
|
func (m *Bundletool) String() string { return proto.CompactTextString(m) }
|
|
func (*Bundletool) ProtoMessage() {}
|
|
func (*Bundletool) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{1}
|
|
}
|
|
|
|
func (m *Bundletool) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_Bundletool.Unmarshal(m, b)
|
|
}
|
|
func (m *Bundletool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_Bundletool.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *Bundletool) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_Bundletool.Merge(m, src)
|
|
}
|
|
func (m *Bundletool) XXX_Size() int {
|
|
return xxx_messageInfo_Bundletool.Size(m)
|
|
}
|
|
func (m *Bundletool) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_Bundletool.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_Bundletool proto.InternalMessageInfo
|
|
|
|
func (m *Bundletool) GetVersion() string {
|
|
if m != nil {
|
|
return m.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Compression struct {
|
|
// Glob matching the list of files to leave uncompressed in the APKs.
|
|
// The matching is done against the path of files in the APK, thus excluding
|
|
// the name of the modules, and using forward slash ("/") as a name separator.
|
|
// Examples: "res/raw/**", "assets/**/*.uncompressed", etc.
|
|
UncompressedGlob []string `protobuf:"bytes,1,rep,name=uncompressed_glob,json=uncompressedGlob,proto3" json:"uncompressed_glob,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *Compression) Reset() { *m = Compression{} }
|
|
func (m *Compression) String() string { return proto.CompactTextString(m) }
|
|
func (*Compression) ProtoMessage() {}
|
|
func (*Compression) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{2}
|
|
}
|
|
|
|
func (m *Compression) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_Compression.Unmarshal(m, b)
|
|
}
|
|
func (m *Compression) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_Compression.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *Compression) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_Compression.Merge(m, src)
|
|
}
|
|
func (m *Compression) XXX_Size() int {
|
|
return xxx_messageInfo_Compression.Size(m)
|
|
}
|
|
func (m *Compression) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_Compression.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_Compression proto.InternalMessageInfo
|
|
|
|
func (m *Compression) GetUncompressedGlob() []string {
|
|
if m != nil {
|
|
return m.UncompressedGlob
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Resources to keep in the master split.
|
|
type MasterResources struct {
|
|
// Resource IDs to be kept in master split.
|
|
ResourceIds []int32 `protobuf:"varint,1,rep,packed,name=resource_ids,json=resourceIds,proto3" json:"resource_ids,omitempty"`
|
|
// Resource names to be kept in master split.
|
|
ResourceNames []string `protobuf:"bytes,2,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *MasterResources) Reset() { *m = MasterResources{} }
|
|
func (m *MasterResources) String() string { return proto.CompactTextString(m) }
|
|
func (*MasterResources) ProtoMessage() {}
|
|
func (*MasterResources) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{3}
|
|
}
|
|
|
|
func (m *MasterResources) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_MasterResources.Unmarshal(m, b)
|
|
}
|
|
func (m *MasterResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_MasterResources.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *MasterResources) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_MasterResources.Merge(m, src)
|
|
}
|
|
func (m *MasterResources) XXX_Size() int {
|
|
return xxx_messageInfo_MasterResources.Size(m)
|
|
}
|
|
func (m *MasterResources) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_MasterResources.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_MasterResources proto.InternalMessageInfo
|
|
|
|
func (m *MasterResources) GetResourceIds() []int32 {
|
|
if m != nil {
|
|
return m.ResourceIds
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *MasterResources) GetResourceNames() []string {
|
|
if m != nil {
|
|
return m.ResourceNames
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Optimizations struct {
|
|
SplitsConfig *SplitsConfig `protobuf:"bytes,1,opt,name=splits_config,json=splitsConfig,proto3" json:"splits_config,omitempty"`
|
|
// This is for uncompressing native libraries on M+ devices (L+ devices on
|
|
// instant apps).
|
|
UncompressNativeLibraries *UncompressNativeLibraries `protobuf:"bytes,2,opt,name=uncompress_native_libraries,json=uncompressNativeLibraries,proto3" json:"uncompress_native_libraries,omitempty"`
|
|
// This is for uncompressing dex files on P+ devices.
|
|
UncompressDexFiles *UncompressDexFiles `protobuf:"bytes,3,opt,name=uncompress_dex_files,json=uncompressDexFiles,proto3" json:"uncompress_dex_files,omitempty"`
|
|
// Configuration for the generation of standalone APKs.
|
|
// If no StandaloneConfig is set, the configuration is inherited from
|
|
// splits_config.
|
|
StandaloneConfig *StandaloneConfig `protobuf:"bytes,4,opt,name=standalone_config,json=standaloneConfig,proto3" json:"standalone_config,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *Optimizations) Reset() { *m = Optimizations{} }
|
|
func (m *Optimizations) String() string { return proto.CompactTextString(m) }
|
|
func (*Optimizations) ProtoMessage() {}
|
|
func (*Optimizations) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{4}
|
|
}
|
|
|
|
func (m *Optimizations) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_Optimizations.Unmarshal(m, b)
|
|
}
|
|
func (m *Optimizations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_Optimizations.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *Optimizations) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_Optimizations.Merge(m, src)
|
|
}
|
|
func (m *Optimizations) XXX_Size() int {
|
|
return xxx_messageInfo_Optimizations.Size(m)
|
|
}
|
|
func (m *Optimizations) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_Optimizations.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_Optimizations proto.InternalMessageInfo
|
|
|
|
func (m *Optimizations) GetSplitsConfig() *SplitsConfig {
|
|
if m != nil {
|
|
return m.SplitsConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *Optimizations) GetUncompressNativeLibraries() *UncompressNativeLibraries {
|
|
if m != nil {
|
|
return m.UncompressNativeLibraries
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *Optimizations) GetUncompressDexFiles() *UncompressDexFiles {
|
|
if m != nil {
|
|
return m.UncompressDexFiles
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *Optimizations) GetStandaloneConfig() *StandaloneConfig {
|
|
if m != nil {
|
|
return m.StandaloneConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type UncompressNativeLibraries struct {
|
|
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *UncompressNativeLibraries) Reset() { *m = UncompressNativeLibraries{} }
|
|
func (m *UncompressNativeLibraries) String() string { return proto.CompactTextString(m) }
|
|
func (*UncompressNativeLibraries) ProtoMessage() {}
|
|
func (*UncompressNativeLibraries) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{5}
|
|
}
|
|
|
|
func (m *UncompressNativeLibraries) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_UncompressNativeLibraries.Unmarshal(m, b)
|
|
}
|
|
func (m *UncompressNativeLibraries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_UncompressNativeLibraries.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *UncompressNativeLibraries) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_UncompressNativeLibraries.Merge(m, src)
|
|
}
|
|
func (m *UncompressNativeLibraries) XXX_Size() int {
|
|
return xxx_messageInfo_UncompressNativeLibraries.Size(m)
|
|
}
|
|
func (m *UncompressNativeLibraries) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_UncompressNativeLibraries.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_UncompressNativeLibraries proto.InternalMessageInfo
|
|
|
|
func (m *UncompressNativeLibraries) GetEnabled() bool {
|
|
if m != nil {
|
|
return m.Enabled
|
|
}
|
|
return false
|
|
}
|
|
|
|
type UncompressDexFiles struct {
|
|
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *UncompressDexFiles) Reset() { *m = UncompressDexFiles{} }
|
|
func (m *UncompressDexFiles) String() string { return proto.CompactTextString(m) }
|
|
func (*UncompressDexFiles) ProtoMessage() {}
|
|
func (*UncompressDexFiles) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{6}
|
|
}
|
|
|
|
func (m *UncompressDexFiles) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_UncompressDexFiles.Unmarshal(m, b)
|
|
}
|
|
func (m *UncompressDexFiles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_UncompressDexFiles.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *UncompressDexFiles) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_UncompressDexFiles.Merge(m, src)
|
|
}
|
|
func (m *UncompressDexFiles) XXX_Size() int {
|
|
return xxx_messageInfo_UncompressDexFiles.Size(m)
|
|
}
|
|
func (m *UncompressDexFiles) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_UncompressDexFiles.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_UncompressDexFiles proto.InternalMessageInfo
|
|
|
|
func (m *UncompressDexFiles) GetEnabled() bool {
|
|
if m != nil {
|
|
return m.Enabled
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Optimization configuration used to generate Split APKs.
|
|
type SplitsConfig struct {
|
|
SplitDimension []*SplitDimension `protobuf:"bytes,1,rep,name=split_dimension,json=splitDimension,proto3" json:"split_dimension,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *SplitsConfig) Reset() { *m = SplitsConfig{} }
|
|
func (m *SplitsConfig) String() string { return proto.CompactTextString(m) }
|
|
func (*SplitsConfig) ProtoMessage() {}
|
|
func (*SplitsConfig) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{7}
|
|
}
|
|
|
|
func (m *SplitsConfig) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_SplitsConfig.Unmarshal(m, b)
|
|
}
|
|
func (m *SplitsConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_SplitsConfig.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *SplitsConfig) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_SplitsConfig.Merge(m, src)
|
|
}
|
|
func (m *SplitsConfig) XXX_Size() int {
|
|
return xxx_messageInfo_SplitsConfig.Size(m)
|
|
}
|
|
func (m *SplitsConfig) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_SplitsConfig.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_SplitsConfig proto.InternalMessageInfo
|
|
|
|
func (m *SplitsConfig) GetSplitDimension() []*SplitDimension {
|
|
if m != nil {
|
|
return m.SplitDimension
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Optimization configuration used to generate Standalone APKs.
|
|
type StandaloneConfig struct {
|
|
// Device targeting dimensions to shard.
|
|
SplitDimension []*SplitDimension `protobuf:"bytes,1,rep,name=split_dimension,json=splitDimension,proto3" json:"split_dimension,omitempty"`
|
|
// Whether 64 bit libraries should be stripped from Standalone APKs.
|
|
Strip_64BitLibraries bool `protobuf:"varint,2,opt,name=strip_64_bit_libraries,json=strip64BitLibraries,proto3" json:"strip_64_bit_libraries,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *StandaloneConfig) Reset() { *m = StandaloneConfig{} }
|
|
func (m *StandaloneConfig) String() string { return proto.CompactTextString(m) }
|
|
func (*StandaloneConfig) ProtoMessage() {}
|
|
func (*StandaloneConfig) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{8}
|
|
}
|
|
|
|
func (m *StandaloneConfig) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_StandaloneConfig.Unmarshal(m, b)
|
|
}
|
|
func (m *StandaloneConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_StandaloneConfig.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *StandaloneConfig) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_StandaloneConfig.Merge(m, src)
|
|
}
|
|
func (m *StandaloneConfig) XXX_Size() int {
|
|
return xxx_messageInfo_StandaloneConfig.Size(m)
|
|
}
|
|
func (m *StandaloneConfig) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_StandaloneConfig.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_StandaloneConfig proto.InternalMessageInfo
|
|
|
|
func (m *StandaloneConfig) GetSplitDimension() []*SplitDimension {
|
|
if m != nil {
|
|
return m.SplitDimension
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *StandaloneConfig) GetStrip_64BitLibraries() bool {
|
|
if m != nil {
|
|
return m.Strip_64BitLibraries
|
|
}
|
|
return false
|
|
}
|
|
|
|
type SplitDimension struct {
|
|
Value SplitDimension_Value `protobuf:"varint,1,opt,name=value,proto3,enum=android.bundle.SplitDimension_Value" json:"value,omitempty"`
|
|
// If set to 'true', indicates that APKs should *not* be split by this
|
|
// dimension.
|
|
Negate bool `protobuf:"varint,2,opt,name=negate,proto3" json:"negate,omitempty"`
|
|
// Optional transformation to be applied to asset directories where
|
|
// the targeting is encoded in the directory name (e.g: assets/foo#tcf_etc1)
|
|
SuffixStripping *SuffixStripping `protobuf:"bytes,3,opt,name=suffix_stripping,json=suffixStripping,proto3" json:"suffix_stripping,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *SplitDimension) Reset() { *m = SplitDimension{} }
|
|
func (m *SplitDimension) String() string { return proto.CompactTextString(m) }
|
|
func (*SplitDimension) ProtoMessage() {}
|
|
func (*SplitDimension) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{9}
|
|
}
|
|
|
|
func (m *SplitDimension) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_SplitDimension.Unmarshal(m, b)
|
|
}
|
|
func (m *SplitDimension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_SplitDimension.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *SplitDimension) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_SplitDimension.Merge(m, src)
|
|
}
|
|
func (m *SplitDimension) XXX_Size() int {
|
|
return xxx_messageInfo_SplitDimension.Size(m)
|
|
}
|
|
func (m *SplitDimension) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_SplitDimension.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_SplitDimension proto.InternalMessageInfo
|
|
|
|
func (m *SplitDimension) GetValue() SplitDimension_Value {
|
|
if m != nil {
|
|
return m.Value
|
|
}
|
|
return SplitDimension_UNSPECIFIED_VALUE
|
|
}
|
|
|
|
func (m *SplitDimension) GetNegate() bool {
|
|
if m != nil {
|
|
return m.Negate
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *SplitDimension) GetSuffixStripping() *SuffixStripping {
|
|
if m != nil {
|
|
return m.SuffixStripping
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type SuffixStripping struct {
|
|
// If set to 'true', indicates that the targeting suffix should be removed
|
|
// from assets paths for this dimension when splits (or asset slices) are
|
|
// generated.
|
|
// This only applies to assets.
|
|
// For example a folder with path "assets/level1_textures#tcf_etc1"
|
|
// would be outputted to "assets/level1_textures". File contents are
|
|
// unchanged.
|
|
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
|
|
// The default suffix to be used for the cases where separate slices can't
|
|
// be generated for this dimension. In the case of standalone/universal APKs
|
|
// generation, stripping the suffix can lead to file name collisions. This
|
|
// default suffix defines the directories to retain. The others are
|
|
// discarded: standalone/universal APKs will contain only directories
|
|
// targeted at this value for the dimension.
|
|
//
|
|
// If not set or empty, the fallback directory in each directory group will be
|
|
// used (for example, if both "assets/level1_textures#tcf_etc1" and
|
|
// "assets/level1_textures" are present and the default suffix is empty,
|
|
// then only "assets/level1_textures" will be used).
|
|
DefaultSuffix string `protobuf:"bytes,2,opt,name=default_suffix,json=defaultSuffix,proto3" json:"default_suffix,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *SuffixStripping) Reset() { *m = SuffixStripping{} }
|
|
func (m *SuffixStripping) String() string { return proto.CompactTextString(m) }
|
|
func (*SuffixStripping) ProtoMessage() {}
|
|
func (*SuffixStripping) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{10}
|
|
}
|
|
|
|
func (m *SuffixStripping) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_SuffixStripping.Unmarshal(m, b)
|
|
}
|
|
func (m *SuffixStripping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_SuffixStripping.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *SuffixStripping) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_SuffixStripping.Merge(m, src)
|
|
}
|
|
func (m *SuffixStripping) XXX_Size() int {
|
|
return xxx_messageInfo_SuffixStripping.Size(m)
|
|
}
|
|
func (m *SuffixStripping) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_SuffixStripping.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_SuffixStripping proto.InternalMessageInfo
|
|
|
|
func (m *SuffixStripping) GetEnabled() bool {
|
|
if m != nil {
|
|
return m.Enabled
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *SuffixStripping) GetDefaultSuffix() string {
|
|
if m != nil {
|
|
return m.DefaultSuffix
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// Configuration for processing APEX bundles.
|
|
// https://source.android.com/devices/tech/ota/apex
|
|
type ApexConfig struct {
|
|
// Configuration for processing of APKs embedded in an APEX image.
|
|
ApexEmbeddedApkConfig []*ApexEmbeddedApkConfig `protobuf:"bytes,1,rep,name=apex_embedded_apk_config,json=apexEmbeddedApkConfig,proto3" json:"apex_embedded_apk_config,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *ApexConfig) Reset() { *m = ApexConfig{} }
|
|
func (m *ApexConfig) String() string { return proto.CompactTextString(m) }
|
|
func (*ApexConfig) ProtoMessage() {}
|
|
func (*ApexConfig) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{11}
|
|
}
|
|
|
|
func (m *ApexConfig) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_ApexConfig.Unmarshal(m, b)
|
|
}
|
|
func (m *ApexConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_ApexConfig.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *ApexConfig) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_ApexConfig.Merge(m, src)
|
|
}
|
|
func (m *ApexConfig) XXX_Size() int {
|
|
return xxx_messageInfo_ApexConfig.Size(m)
|
|
}
|
|
func (m *ApexConfig) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_ApexConfig.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_ApexConfig proto.InternalMessageInfo
|
|
|
|
func (m *ApexConfig) GetApexEmbeddedApkConfig() []*ApexEmbeddedApkConfig {
|
|
if m != nil {
|
|
return m.ApexEmbeddedApkConfig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ApexEmbeddedApkConfig struct {
|
|
// Android package name of the APK.
|
|
PackageName string `protobuf:"bytes,1,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"`
|
|
// Path to the APK within the APEX system image.
|
|
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *ApexEmbeddedApkConfig) Reset() { *m = ApexEmbeddedApkConfig{} }
|
|
func (m *ApexEmbeddedApkConfig) String() string { return proto.CompactTextString(m) }
|
|
func (*ApexEmbeddedApkConfig) ProtoMessage() {}
|
|
func (*ApexEmbeddedApkConfig) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{12}
|
|
}
|
|
|
|
func (m *ApexEmbeddedApkConfig) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_ApexEmbeddedApkConfig.Unmarshal(m, b)
|
|
}
|
|
func (m *ApexEmbeddedApkConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_ApexEmbeddedApkConfig.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *ApexEmbeddedApkConfig) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_ApexEmbeddedApkConfig.Merge(m, src)
|
|
}
|
|
func (m *ApexEmbeddedApkConfig) XXX_Size() int {
|
|
return xxx_messageInfo_ApexEmbeddedApkConfig.Size(m)
|
|
}
|
|
func (m *ApexEmbeddedApkConfig) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_ApexEmbeddedApkConfig.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_ApexEmbeddedApkConfig proto.InternalMessageInfo
|
|
|
|
func (m *ApexEmbeddedApkConfig) GetPackageName() string {
|
|
if m != nil {
|
|
return m.PackageName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *ApexEmbeddedApkConfig) GetPath() string {
|
|
if m != nil {
|
|
return m.Path
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type UnsignedEmbeddedApkConfig struct {
|
|
// Path to the APK inside the module (e.g. if the path inside the bundle
|
|
// is split/assets/example.apk, this will be assets/example.apk).
|
|
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *UnsignedEmbeddedApkConfig) Reset() { *m = UnsignedEmbeddedApkConfig{} }
|
|
func (m *UnsignedEmbeddedApkConfig) String() string { return proto.CompactTextString(m) }
|
|
func (*UnsignedEmbeddedApkConfig) ProtoMessage() {}
|
|
func (*UnsignedEmbeddedApkConfig) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{13}
|
|
}
|
|
|
|
func (m *UnsignedEmbeddedApkConfig) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_UnsignedEmbeddedApkConfig.Unmarshal(m, b)
|
|
}
|
|
func (m *UnsignedEmbeddedApkConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_UnsignedEmbeddedApkConfig.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *UnsignedEmbeddedApkConfig) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_UnsignedEmbeddedApkConfig.Merge(m, src)
|
|
}
|
|
func (m *UnsignedEmbeddedApkConfig) XXX_Size() int {
|
|
return xxx_messageInfo_UnsignedEmbeddedApkConfig.Size(m)
|
|
}
|
|
func (m *UnsignedEmbeddedApkConfig) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_UnsignedEmbeddedApkConfig.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_UnsignedEmbeddedApkConfig proto.InternalMessageInfo
|
|
|
|
func (m *UnsignedEmbeddedApkConfig) GetPath() string {
|
|
if m != nil {
|
|
return m.Path
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type AssetModulesConfig struct {
|
|
// App versionCodes that will be updated with these asset modules.
|
|
// Only relevant for asset-only bundles.
|
|
AppVersion []int64 `protobuf:"varint,1,rep,packed,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
|
|
// Version tag for the asset upload.
|
|
// Only relevant for asset-only bundles.
|
|
AssetVersionTag string `protobuf:"bytes,2,opt,name=asset_version_tag,json=assetVersionTag,proto3" json:"asset_version_tag,omitempty"`
|
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
XXX_sizecache int32 `json:"-"`
|
|
}
|
|
|
|
func (m *AssetModulesConfig) Reset() { *m = AssetModulesConfig{} }
|
|
func (m *AssetModulesConfig) String() string { return proto.CompactTextString(m) }
|
|
func (*AssetModulesConfig) ProtoMessage() {}
|
|
func (*AssetModulesConfig) Descriptor() ([]byte, []int) {
|
|
return fileDescriptor_3eaf2c85e69e9ea4, []int{14}
|
|
}
|
|
|
|
func (m *AssetModulesConfig) XXX_Unmarshal(b []byte) error {
|
|
return xxx_messageInfo_AssetModulesConfig.Unmarshal(m, b)
|
|
}
|
|
func (m *AssetModulesConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
return xxx_messageInfo_AssetModulesConfig.Marshal(b, m, deterministic)
|
|
}
|
|
func (m *AssetModulesConfig) XXX_Merge(src proto.Message) {
|
|
xxx_messageInfo_AssetModulesConfig.Merge(m, src)
|
|
}
|
|
func (m *AssetModulesConfig) XXX_Size() int {
|
|
return xxx_messageInfo_AssetModulesConfig.Size(m)
|
|
}
|
|
func (m *AssetModulesConfig) XXX_DiscardUnknown() {
|
|
xxx_messageInfo_AssetModulesConfig.DiscardUnknown(m)
|
|
}
|
|
|
|
var xxx_messageInfo_AssetModulesConfig proto.InternalMessageInfo
|
|
|
|
func (m *AssetModulesConfig) GetAppVersion() []int64 {
|
|
if m != nil {
|
|
return m.AppVersion
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *AssetModulesConfig) GetAssetVersionTag() string {
|
|
if m != nil {
|
|
return m.AssetVersionTag
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func init() {
|
|
proto.RegisterEnum("android.bundle.BundleConfig_BundleType", BundleConfig_BundleType_name, BundleConfig_BundleType_value)
|
|
proto.RegisterEnum("android.bundle.SplitDimension_Value", SplitDimension_Value_name, SplitDimension_Value_value)
|
|
proto.RegisterType((*BundleConfig)(nil), "android.bundle.BundleConfig")
|
|
proto.RegisterType((*Bundletool)(nil), "android.bundle.Bundletool")
|
|
proto.RegisterType((*Compression)(nil), "android.bundle.Compression")
|
|
proto.RegisterType((*MasterResources)(nil), "android.bundle.MasterResources")
|
|
proto.RegisterType((*Optimizations)(nil), "android.bundle.Optimizations")
|
|
proto.RegisterType((*UncompressNativeLibraries)(nil), "android.bundle.UncompressNativeLibraries")
|
|
proto.RegisterType((*UncompressDexFiles)(nil), "android.bundle.UncompressDexFiles")
|
|
proto.RegisterType((*SplitsConfig)(nil), "android.bundle.SplitsConfig")
|
|
proto.RegisterType((*StandaloneConfig)(nil), "android.bundle.StandaloneConfig")
|
|
proto.RegisterType((*SplitDimension)(nil), "android.bundle.SplitDimension")
|
|
proto.RegisterType((*SuffixStripping)(nil), "android.bundle.SuffixStripping")
|
|
proto.RegisterType((*ApexConfig)(nil), "android.bundle.ApexConfig")
|
|
proto.RegisterType((*ApexEmbeddedApkConfig)(nil), "android.bundle.ApexEmbeddedApkConfig")
|
|
proto.RegisterType((*UnsignedEmbeddedApkConfig)(nil), "android.bundle.UnsignedEmbeddedApkConfig")
|
|
proto.RegisterType((*AssetModulesConfig)(nil), "android.bundle.AssetModulesConfig")
|
|
}
|
|
|
|
func init() {
|
|
proto.RegisterFile("config.proto", fileDescriptor_3eaf2c85e69e9ea4)
|
|
}
|
|
|
|
var fileDescriptor_3eaf2c85e69e9ea4 = []byte{
|
|
// 1001 bytes of a gzipped FileDescriptorProto
|
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdb, 0x6e, 0xdb, 0x46,
|
|
0x10, 0x0d, 0x75, 0xb1, 0xe5, 0x91, 0x2c, 0xd1, 0xdb, 0x38, 0x50, 0x2e, 0x4d, 0x5c, 0xa2, 0x41,
|
|
0xdd, 0xb4, 0x50, 0x01, 0x3b, 0xcd, 0x83, 0x83, 0x3e, 0xd0, 0x32, 0xad, 0x2a, 0xd0, 0x0d, 0x4b,
|
|
0xc9, 0x4d, 0x5a, 0xa0, 0x8b, 0x95, 0xb8, 0x52, 0xb7, 0xa6, 0x48, 0x82, 0x4b, 0x1a, 0x4a, 0xfb,
|
|
0x09, 0x7d, 0xe9, 0x8f, 0xf4, 0xa7, 0xfa, 0x25, 0x05, 0x97, 0xa4, 0x2c, 0x51, 0x52, 0x9e, 0xfa,
|
|
0x24, 0xce, 0xec, 0x39, 0xb3, 0x3b, 0xb3, 0x67, 0x67, 0x04, 0x95, 0x89, 0xeb, 0x4c, 0xf9, 0xac,
|
|
0xe1, 0xf9, 0x6e, 0xe0, 0xa2, 0x2a, 0x75, 0x2c, 0xdf, 0xe5, 0x56, 0x63, 0x1c, 0x3a, 0x96, 0xcd,
|
|
0xb4, 0xbf, 0x8a, 0x50, 0xb9, 0x94, 0x9f, 0x4d, 0x09, 0x43, 0x17, 0x00, 0xf1, 0x52, 0xe0, 0xba,
|
|
0x76, 0x5d, 0x39, 0x51, 0x4e, 0xcb, 0x67, 0x4f, 0x1a, 0xeb, 0xac, 0xc6, 0xe5, 0x12, 0x81, 0x57,
|
|
0xd0, 0xa8, 0x09, 0x87, 0xae, 0x17, 0xf0, 0x39, 0xff, 0x83, 0x06, 0xdc, 0x75, 0x44, 0x3d, 0x27,
|
|
0xe9, 0x9f, 0x67, 0xe9, 0xfd, 0x55, 0x10, 0x5e, 0xe7, 0xa0, 0x1f, 0xa0, 0x3c, 0x71, 0xe7, 0x9e,
|
|
0xcf, 0x84, 0xe0, 0xae, 0x53, 0xcf, 0xcb, 0x10, 0x4f, 0xb3, 0x21, 0x9a, 0xf7, 0x10, 0xbc, 0x8a,
|
|
0x47, 0xef, 0x40, 0x9d, 0x53, 0x11, 0x30, 0x9f, 0xf8, 0x4c, 0xb8, 0xa1, 0x3f, 0x61, 0xa2, 0x5e,
|
|
0x90, 0x31, 0x5e, 0x64, 0x63, 0x74, 0x25, 0x0e, 0xa7, 0x30, 0x5c, 0x9b, 0xaf, 0x3b, 0xd0, 0x5b,
|
|
0x28, 0x53, 0x8f, 0x2d, 0x48, 0x5c, 0xc1, 0x7a, 0x71, 0x7b, 0x31, 0x74, 0x8f, 0x2d, 0xe2, 0xe2,
|
|
0x61, 0xa0, 0xcb, 0x6f, 0xf4, 0x3b, 0x3c, 0x0b, 0x1d, 0xc1, 0x67, 0x0e, 0xb3, 0x08, 0x9b, 0x8f,
|
|
0x99, 0x65, 0x31, 0x8b, 0x50, 0xef, 0x36, 0x8d, 0xb6, 0x77, 0x92, 0x3f, 0x2d, 0x9f, 0x7d, 0x9d,
|
|
0x8d, 0x36, 0x4a, 0x38, 0x46, 0x42, 0xd1, 0xbd, 0xdb, 0x24, 0xf8, 0xe3, 0x70, 0xd7, 0x12, 0x1a,
|
|
0xc2, 0x43, 0x2a, 0x04, 0x0b, 0xc8, 0xdc, 0xb5, 0x42, 0x9b, 0x89, 0x74, 0x8f, 0x7d, 0x79, 0x62,
|
|
0x6d, 0xe3, 0xc4, 0x11, 0xb6, 0x1b, 0x43, 0x93, 0xe0, 0x88, 0x6e, 0xf8, 0xd0, 0x5b, 0x28, 0x04,
|
|
0x1f, 0x3d, 0x56, 0x2f, 0x9d, 0x28, 0xa7, 0xd5, 0xb3, 0xaf, 0xb6, 0x8b, 0x20, 0xc6, 0x26, 0xc6,
|
|
0xf0, 0xa3, 0xc7, 0xb0, 0x24, 0x69, 0xe7, 0x00, 0xf7, 0x3e, 0x54, 0x86, 0x7d, 0x6c, 0xb4, 0x46,
|
|
0x1d, 0x1d, 0xab, 0x0f, 0x50, 0x09, 0x0a, 0xfa, 0xc0, 0x78, 0xaf, 0x2a, 0xa8, 0x0a, 0xa0, 0x9b,
|
|
0xa6, 0x31, 0x24, 0xfd, 0x5e, 0xe7, 0x83, 0x9a, 0xd3, 0xbe, 0x4d, 0x49, 0x52, 0x4e, 0x75, 0xd8,
|
|
0xbf, 0x63, 0xbe, 0x54, 0x41, 0x24, 0xa4, 0x03, 0x9c, 0x9a, 0xef, 0x0a, 0x25, 0x45, 0xcd, 0x69,
|
|
0x17, 0x50, 0x5e, 0x91, 0x01, 0xfa, 0x06, 0x8e, 0x42, 0x27, 0x95, 0x02, 0xb3, 0xc8, 0xcc, 0x76,
|
|
0xc7, 0x75, 0xe5, 0x24, 0x7f, 0x7a, 0x80, 0xd5, 0xd5, 0x85, 0x96, 0xed, 0x8e, 0xb5, 0x5f, 0xa0,
|
|
0x96, 0xb9, 0x7e, 0xf4, 0x05, 0x54, 0x52, 0xc9, 0x10, 0x6e, 0x09, 0x49, 0x2d, 0xe2, 0x72, 0xea,
|
|
0x6b, 0x5b, 0x02, 0xbd, 0x84, 0xea, 0x12, 0xe2, 0xd0, 0x39, 0x8b, 0x14, 0x1e, 0xc5, 0x3f, 0x4c,
|
|
0xbd, 0xbd, 0xc8, 0xa9, 0xfd, 0x9b, 0x83, 0xc3, 0x35, 0x8d, 0x23, 0x1d, 0x0e, 0x85, 0x67, 0xf3,
|
|
0x60, 0x79, 0x33, 0xf1, 0xc3, 0x7a, 0x96, 0xad, 0xa9, 0x29, 0x41, 0xc9, 0x9d, 0x54, 0xc4, 0x8a,
|
|
0x85, 0x38, 0x3c, 0xbd, 0xcf, 0x82, 0x38, 0x34, 0xe0, 0x77, 0x8c, 0xd8, 0x7c, 0xec, 0x53, 0x9f,
|
|
0xb3, 0xf4, 0xa9, 0x6d, 0x91, 0x53, 0x4a, 0xe9, 0x49, 0x46, 0x27, 0x25, 0x44, 0x72, 0xda, 0xb1,
|
|
0x14, 0xc9, 0x69, 0x65, 0x2b, 0x8b, 0x2d, 0xc8, 0x94, 0xdb, 0x4c, 0x24, 0x6f, 0x51, 0xdb, 0xbd,
|
|
0xc7, 0x15, 0x5b, 0x5c, 0x47, 0x48, 0x8c, 0xc2, 0x0d, 0x1f, 0xea, 0xc2, 0x91, 0x08, 0xa8, 0x63,
|
|
0x51, 0xdb, 0x75, 0x58, 0x5a, 0x87, 0xf8, 0x69, 0x9e, 0x6c, 0xd4, 0x61, 0x09, 0x4c, 0x6a, 0xa1,
|
|
0x8a, 0x8c, 0x47, 0xfb, 0x1e, 0x1e, 0xef, 0x4c, 0x2e, 0x92, 0x0e, 0x73, 0xe8, 0xd8, 0x66, 0x96,
|
|
0xac, 0x74, 0x09, 0xa7, 0xa6, 0xd6, 0x00, 0xb4, 0x79, 0xde, 0x4f, 0xe0, 0x7f, 0x82, 0xca, 0xea,
|
|
0xa5, 0xa0, 0x16, 0xd4, 0xe4, 0xb5, 0x10, 0x8b, 0xcf, 0x99, 0x23, 0xc5, 0xa9, 0xc8, 0x97, 0xfc,
|
|
0x7c, 0xeb, 0x5d, 0x5e, 0xa5, 0x28, 0x5c, 0x15, 0x6b, 0xb6, 0xf6, 0xb7, 0x02, 0x6a, 0x36, 0xcd,
|
|
0xff, 0x2d, 0x3a, 0x3a, 0x87, 0x47, 0x22, 0xf0, 0xb9, 0x47, 0xde, 0xbc, 0x26, 0x63, 0x1e, 0x64,
|
|
0x84, 0x52, 0xc2, 0x9f, 0xc9, 0xd5, 0x37, 0xaf, 0x2f, 0x79, 0xb0, 0xac, 0x9a, 0xf6, 0x4f, 0x0e,
|
|
0xaa, 0xeb, 0x71, 0xd1, 0x05, 0x14, 0xef, 0xa8, 0x1d, 0x32, 0x59, 0x96, 0xea, 0xd9, 0x97, 0x9f,
|
|
0x3e, 0x46, 0xe3, 0x26, 0xc2, 0xe2, 0x98, 0x82, 0x1e, 0xc1, 0x9e, 0xc3, 0x66, 0x34, 0x60, 0xc9,
|
|
0x9e, 0x89, 0x15, 0xb5, 0x68, 0x11, 0x4e, 0xa7, 0x7c, 0x41, 0xe4, 0x21, 0x3c, 0xee, 0xcc, 0x12,
|
|
0x69, 0x6d, 0xb4, 0x68, 0x53, 0xe2, 0xcc, 0x14, 0x86, 0x6b, 0x62, 0xdd, 0xa1, 0xfd, 0x09, 0x45,
|
|
0xb9, 0x27, 0x3a, 0x86, 0xa3, 0x51, 0xcf, 0x1c, 0x18, 0xcd, 0xf6, 0x75, 0xdb, 0xb8, 0x22, 0x37,
|
|
0x7a, 0x67, 0x64, 0xa8, 0x0f, 0xd0, 0x3e, 0xe4, 0xf5, 0xcb, 0xb6, 0xaa, 0x20, 0x04, 0x55, 0xb3,
|
|
0x89, 0x0d, 0xa3, 0x47, 0xae, 0x8c, 0x9e, 0xd9, 0x1e, 0x7e, 0x50, 0x73, 0xa8, 0x02, 0xa5, 0x8e,
|
|
0xde, 0x6b, 0x8d, 0xf4, 0x96, 0xa1, 0xe6, 0xd1, 0x73, 0x78, 0x32, 0x34, 0xde, 0x0f, 0x47, 0xd8,
|
|
0x20, 0xcd, 0x7e, 0x77, 0x80, 0x0d, 0xd3, 0x6c, 0xf7, 0x7b, 0xe4, 0xba, 0x8f, 0xbb, 0xfa, 0x50,
|
|
0x2d, 0x20, 0x15, 0x2a, 0x2d, 0xac, 0x0f, 0x7e, 0x6c, 0x37, 0x4d, 0xa2, 0x0f, 0xda, 0x6a, 0x51,
|
|
0xc3, 0x50, 0xcb, 0x1c, 0x70, 0xb7, 0x90, 0xa2, 0xde, 0x61, 0xb1, 0x29, 0x0d, 0xed, 0x80, 0xc4,
|
|
0x49, 0x24, 0x4d, 0xed, 0x30, 0xf1, 0xc6, 0x91, 0x34, 0x1b, 0xe0, 0x7e, 0xa0, 0xa0, 0x5f, 0xa1,
|
|
0x2e, 0x27, 0xd0, 0xb6, 0x01, 0x12, 0x0b, 0xe3, 0xe5, 0xb6, 0x71, 0xb4, 0x39, 0x3c, 0x8e, 0xe9,
|
|
0x36, 0xb7, 0xd6, 0x83, 0xe3, 0xad, 0xf8, 0xa8, 0x19, 0x7a, 0x74, 0x72, 0x4b, 0x67, 0x71, 0xa3,
|
|
0x93, 0xc9, 0x1c, 0xe0, 0x72, 0xe2, 0x8b, 0xda, 0x1c, 0x42, 0x50, 0xf0, 0x68, 0xf0, 0x5b, 0x92,
|
|
0x86, 0xfc, 0xd6, 0xbe, 0x8b, 0x1e, 0xe5, 0xae, 0x29, 0x95, 0x12, 0x94, 0x15, 0x02, 0x05, 0xb4,
|
|
0x39, 0x8d, 0xd0, 0x8b, 0x68, 0xf0, 0x7a, 0x24, 0xed, 0xfe, 0x51, 0xa6, 0xf9, 0x68, 0xb8, 0x7a,
|
|
0x37, 0xb1, 0x07, 0xbd, 0x82, 0xa3, 0x78, 0xe0, 0x25, 0x10, 0x12, 0xd0, 0x59, 0x72, 0x90, 0x9a,
|
|
0x5c, 0x48, 0x80, 0x43, 0x3a, 0xbb, 0x7c, 0x05, 0x68, 0xe2, 0xce, 0x33, 0x65, 0xfa, 0xf9, 0x61,
|
|
0x62, 0x93, 0xd8, 0x26, 0xf2, 0xef, 0xd1, 0x78, 0x4f, 0xfe, 0x9c, 0xff, 0x17, 0x00, 0x00, 0xff,
|
|
0xff, 0x6b, 0x05, 0xbf, 0x99, 0x35, 0x09, 0x00, 0x00,
|
|
}
|