package pb

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/timestamp"

var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

type Listing_Metadata_ContractType int32

const (
	Listing_Metadata_PHYSICAL_GOOD Listing_Metadata_ContractType = 0
	Listing_Metadata_DIGITAL_GOOD  Listing_Metadata_ContractType = 1
	Listing_Metadata_SERVICE       Listing_Metadata_ContractType = 2
	Listing_Metadata_CROWD_FUND    Listing_Metadata_ContractType = 3
)

var Listing_Metadata_ContractType_name = map[int32]string{
	0: "PHYSICAL_GOOD",
	1: "DIGITAL_GOOD",
	2: "SERVICE",
	3: "CROWD_FUND",
}
var Listing_Metadata_ContractType_value = map[string]int32{
	"PHYSICAL_GOOD": 0,
	"DIGITAL_GOOD":  1,
	"SERVICE":       2,
	"CROWD_FUND":    3,
}

func (x Listing_Metadata_ContractType) String() string {
	return proto.EnumName(Listing_Metadata_ContractType_name, int32(x))
}
func (Listing_Metadata_ContractType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 0, 0}
}

type Listing_Metadata_Format int32

const (
	Listing_Metadata_FIXED_PRICE Listing_Metadata_Format = 0
	Listing_Metadata_AUCTION     Listing_Metadata_Format = 1
)

var Listing_Metadata_Format_name = map[int32]string{
	0: "FIXED_PRICE",
	1: "AUCTION",
}
var Listing_Metadata_Format_value = map[string]int32{
	"FIXED_PRICE": 0,
	"AUCTION":     1,
}

func (x Listing_Metadata_Format) String() string {
	return proto.EnumName(Listing_Metadata_Format_name, int32(x))
}
func (Listing_Metadata_Format) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 0, 1}
}

type Listing_ShippingOption_ShippingType int32

const (
	Listing_ShippingOption_LOCAL_PICKUP Listing_ShippingOption_ShippingType = 0
	Listing_ShippingOption_FIXED_PRICE  Listing_ShippingOption_ShippingType = 1
)

var Listing_ShippingOption_ShippingType_name = map[int32]string{
	0: "LOCAL_PICKUP",
	1: "FIXED_PRICE",
}
var Listing_ShippingOption_ShippingType_value = map[string]int32{
	"LOCAL_PICKUP": 0,
	"FIXED_PRICE":  1,
}

func (x Listing_ShippingOption_ShippingType) String() string {
	return proto.EnumName(Listing_ShippingOption_ShippingType_name, int32(x))
}
func (Listing_ShippingOption_ShippingType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 0}
}

type Listing_ShippingOption_ShippingRules_RuleType int32

const (
	Listing_ShippingOption_ShippingRules_QUANTITY_DISCOUNT          Listing_ShippingOption_ShippingRules_RuleType = 0
	Listing_ShippingOption_ShippingRules_FLAT_FEE_QUANTITY_RANGE    Listing_ShippingOption_ShippingRules_RuleType = 1
	Listing_ShippingOption_ShippingRules_FLAT_FEE_WEIGHT_RANGE      Listing_ShippingOption_ShippingRules_RuleType = 2
	Listing_ShippingOption_ShippingRules_COMBINED_SHIPPING_ADD      Listing_ShippingOption_ShippingRules_RuleType = 3
	Listing_ShippingOption_ShippingRules_COMBINED_SHIPPING_SUBTRACT Listing_ShippingOption_ShippingRules_RuleType = 4
)

var Listing_ShippingOption_ShippingRules_RuleType_name = map[int32]string{
	0: "QUANTITY_DISCOUNT",
	1: "FLAT_FEE_QUANTITY_RANGE",
	2: "FLAT_FEE_WEIGHT_RANGE",
	3: "COMBINED_SHIPPING_ADD",
	4: "COMBINED_SHIPPING_SUBTRACT",
}
var Listing_ShippingOption_ShippingRules_RuleType_value = map[string]int32{
	"QUANTITY_DISCOUNT":          0,
	"FLAT_FEE_QUANTITY_RANGE":    1,
	"FLAT_FEE_WEIGHT_RANGE":      2,
	"COMBINED_SHIPPING_ADD":      3,
	"COMBINED_SHIPPING_SUBTRACT": 4,
}

func (x Listing_ShippingOption_ShippingRules_RuleType) String() string {
	return proto.EnumName(Listing_ShippingOption_ShippingRules_RuleType_name, int32(x))
}
func (Listing_ShippingOption_ShippingRules_RuleType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 1, 0}
}

type Order_Payment_Method int32

const (
	Order_Payment_ADDRESS_REQUEST Order_Payment_Method = 0
	Order_Payment_DIRECT          Order_Payment_Method = 1
	Order_Payment_MODERATED       Order_Payment_Method = 2
)

var Order_Payment_Method_name = map[int32]string{
	0: "ADDRESS_REQUEST",
	1: "DIRECT",
	2: "MODERATED",
}
var Order_Payment_Method_value = map[string]int32{
	"ADDRESS_REQUEST": 0,
	"DIRECT":          1,
	"MODERATED":       2,
}

func (x Order_Payment_Method) String() string {
	return proto.EnumName(Order_Payment_Method_name, int32(x))
}
func (Order_Payment_Method) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 2, 0} }

type Signature_Section int32

const (
	Signature_LISTING            Signature_Section = 0
	Signature_ORDER              Signature_Section = 1
	Signature_ORDER_CONFIRMATION Signature_Section = 2
	Signature_ORDER_FULFILLMENT  Signature_Section = 3
	Signature_ORDER_COMPLETION   Signature_Section = 4
	Signature_DISPUTE            Signature_Section = 5
	Signature_DISPUTE_RESOLUTION Signature_Section = 6
	Signature_REFUND             Signature_Section = 7
)

var Signature_Section_name = map[int32]string{
	0: "LISTING",
	1: "ORDER",
	2: "ORDER_CONFIRMATION",
	3: "ORDER_FULFILLMENT",
	4: "ORDER_COMPLETION",
	5: "DISPUTE",
	6: "DISPUTE_RESOLUTION",
	7: "REFUND",
}
var Signature_Section_value = map[string]int32{
	"LISTING":            0,
	"ORDER":              1,
	"ORDER_CONFIRMATION": 2,
	"ORDER_FULFILLMENT":  3,
	"ORDER_COMPLETION":   4,
	"DISPUTE":            5,
	"DISPUTE_RESOLUTION": 6,
	"REFUND":             7,
}

func (x Signature_Section) String() string {
	return proto.EnumName(Signature_Section_name, int32(x))
}
func (Signature_Section) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{16, 0} }

type RicardianContract struct {
	VendorListings          []*Listing          `protobuf:"bytes,1,rep,name=vendorListings" json:"vendorListings,omitempty"`
	BuyerOrder              *Order              `protobuf:"bytes,2,opt,name=buyerOrder" json:"buyerOrder,omitempty"`
	VendorOrderConfirmation *OrderConfirmation  `protobuf:"bytes,3,opt,name=vendorOrderConfirmation" json:"vendorOrderConfirmation,omitempty"`
	VendorOrderFulfillment  []*OrderFulfillment `protobuf:"bytes,4,rep,name=vendorOrderFulfillment" json:"vendorOrderFulfillment,omitempty"`
	BuyerOrderCompletion    *OrderCompletion    `protobuf:"bytes,5,opt,name=buyerOrderCompletion" json:"buyerOrderCompletion,omitempty"`
	Dispute                 *Dispute            `protobuf:"bytes,6,opt,name=dispute" json:"dispute,omitempty"`
	DisputeResolution       *DisputeResolution  `protobuf:"bytes,7,opt,name=disputeResolution" json:"disputeResolution,omitempty"`
	DisputeAcceptance       *DisputeAcceptance  `protobuf:"bytes,8,opt,name=disputeAcceptance" json:"disputeAcceptance,omitempty"`
	Refund                  *Refund             `protobuf:"bytes,9,opt,name=refund" json:"refund,omitempty"`
	Signatures              []*Signature        `protobuf:"bytes,10,rep,name=signatures" json:"signatures,omitempty"`
}

func (m *RicardianContract) Reset()                    { *m = RicardianContract{} }
func (m *RicardianContract) String() string            { return proto.CompactTextString(m) }
func (*RicardianContract) ProtoMessage()               {}
func (*RicardianContract) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }

func (m *RicardianContract) GetVendorListings() []*Listing {
	if m != nil {
		return m.VendorListings
	}
	return nil
}

func (m *RicardianContract) GetBuyerOrder() *Order {
	if m != nil {
		return m.BuyerOrder
	}
	return nil
}

func (m *RicardianContract) GetVendorOrderConfirmation() *OrderConfirmation {
	if m != nil {
		return m.VendorOrderConfirmation
	}
	return nil
}

func (m *RicardianContract) GetVendorOrderFulfillment() []*OrderFulfillment {
	if m != nil {
		return m.VendorOrderFulfillment
	}
	return nil
}

func (m *RicardianContract) GetBuyerOrderCompletion() *OrderCompletion {
	if m != nil {
		return m.BuyerOrderCompletion
	}
	return nil
}

func (m *RicardianContract) GetDispute() *Dispute {
	if m != nil {
		return m.Dispute
	}
	return nil
}

func (m *RicardianContract) GetDisputeResolution() *DisputeResolution {
	if m != nil {
		return m.DisputeResolution
	}
	return nil
}

func (m *RicardianContract) GetDisputeAcceptance() *DisputeAcceptance {
	if m != nil {
		return m.DisputeAcceptance
	}
	return nil
}

func (m *RicardianContract) GetRefund() *Refund {
	if m != nil {
		return m.Refund
	}
	return nil
}

func (m *RicardianContract) GetSignatures() []*Signature {
	if m != nil {
		return m.Signatures
	}
	return nil
}

type Listing struct {
	Slug               string                    `protobuf:"bytes,1,opt,name=slug" json:"slug,omitempty"`
	VendorID           *ID                       `protobuf:"bytes,2,opt,name=vendorID" json:"vendorID,omitempty"`
	Metadata           *Listing_Metadata         `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"`
	Item               *Listing_Item             `protobuf:"bytes,4,opt,name=item" json:"item,omitempty"`
	ShippingOptions    []*Listing_ShippingOption `protobuf:"bytes,5,rep,name=shippingOptions" json:"shippingOptions,omitempty"`
	Taxes              []*Listing_Tax            `protobuf:"bytes,6,rep,name=taxes" json:"taxes,omitempty"`
	Coupons            []*Listing_Coupon         `protobuf:"bytes,7,rep,name=coupons" json:"coupons,omitempty"`
	Moderators         []string                  `protobuf:"bytes,8,rep,name=moderators" json:"moderators,omitempty"`
	TermsAndConditions string                    `protobuf:"bytes,9,opt,name=termsAndConditions" json:"termsAndConditions,omitempty"`
	RefundPolicy       string                    `protobuf:"bytes,10,opt,name=refundPolicy" json:"refundPolicy,omitempty"`
}

func (m *Listing) Reset()                    { *m = Listing{} }
func (m *Listing) String() string            { return proto.CompactTextString(m) }
func (*Listing) ProtoMessage()               {}
func (*Listing) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }

func (m *Listing) GetSlug() string {
	if m != nil {
		return m.Slug
	}
	return ""
}

func (m *Listing) GetVendorID() *ID {
	if m != nil {
		return m.VendorID
	}
	return nil
}

func (m *Listing) GetMetadata() *Listing_Metadata {
	if m != nil {
		return m.Metadata
	}
	return nil
}

func (m *Listing) GetItem() *Listing_Item {
	if m != nil {
		return m.Item
	}
	return nil
}

func (m *Listing) GetShippingOptions() []*Listing_ShippingOption {
	if m != nil {
		return m.ShippingOptions
	}
	return nil
}

func (m *Listing) GetTaxes() []*Listing_Tax {
	if m != nil {
		return m.Taxes
	}
	return nil
}

func (m *Listing) GetCoupons() []*Listing_Coupon {
	if m != nil {
		return m.Coupons
	}
	return nil
}

func (m *Listing) GetModerators() []string {
	if m != nil {
		return m.Moderators
	}
	return nil
}

func (m *Listing) GetTermsAndConditions() string {
	if m != nil {
		return m.TermsAndConditions
	}
	return ""
}

func (m *Listing) GetRefundPolicy() string {
	if m != nil {
		return m.RefundPolicy
	}
	return ""
}

type Listing_Metadata struct {
	Version            uint32                        `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
	ContractType       Listing_Metadata_ContractType `protobuf:"varint,2,opt,name=contractType,enum=Listing_Metadata_ContractType" json:"contractType,omitempty"`
	Format             Listing_Metadata_Format       `protobuf:"varint,3,opt,name=format,enum=Listing_Metadata_Format" json:"format,omitempty"`
	Expiry             *google_protobuf.Timestamp    `protobuf:"bytes,4,opt,name=expiry" json:"expiry,omitempty"`
	AcceptedCurrencies []string                      `protobuf:"bytes,5,rep,name=acceptedCurrencies" json:"acceptedCurrencies,omitempty"`
	PricingCurrency    string                        `protobuf:"bytes,6,opt,name=pricingCurrency" json:"pricingCurrency,omitempty"`
	Language           string                        `protobuf:"bytes,7,opt,name=language" json:"language,omitempty"`
	EscrowTimeoutHours uint32                        `protobuf:"varint,8,opt,name=escrowTimeoutHours" json:"escrowTimeoutHours,omitempty"`
}

func (m *Listing_Metadata) Reset()                    { *m = Listing_Metadata{} }
func (m *Listing_Metadata) String() string            { return proto.CompactTextString(m) }
func (*Listing_Metadata) ProtoMessage()               {}
func (*Listing_Metadata) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 0} }

func (m *Listing_Metadata) GetVersion() uint32 {
	if m != nil {
		return m.Version
	}
	return 0
}

func (m *Listing_Metadata) GetContractType() Listing_Metadata_ContractType {
	if m != nil {
		return m.ContractType
	}
	return Listing_Metadata_PHYSICAL_GOOD
}

func (m *Listing_Metadata) GetFormat() Listing_Metadata_Format {
	if m != nil {
		return m.Format
	}
	return Listing_Metadata_FIXED_PRICE
}

func (m *Listing_Metadata) GetExpiry() *google_protobuf.Timestamp {
	if m != nil {
		return m.Expiry
	}
	return nil
}

func (m *Listing_Metadata) GetAcceptedCurrencies() []string {
	if m != nil {
		return m.AcceptedCurrencies
	}
	return nil
}

func (m *Listing_Metadata) GetPricingCurrency() string {
	if m != nil {
		return m.PricingCurrency
	}
	return ""
}

func (m *Listing_Metadata) GetLanguage() string {
	if m != nil {
		return m.Language
	}
	return ""
}

func (m *Listing_Metadata) GetEscrowTimeoutHours() uint32 {
	if m != nil {
		return m.EscrowTimeoutHours
	}
	return 0
}

type Listing_Item struct {
	Title          string                 `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
	Description    string                 `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	ProcessingTime string                 `protobuf:"bytes,3,opt,name=processingTime" json:"processingTime,omitempty"`
	Price          uint64                 `protobuf:"varint,4,opt,name=price" json:"price,omitempty"`
	Nsfw           bool                   `protobuf:"varint,5,opt,name=nsfw" json:"nsfw,omitempty"`
	Tags           []string               `protobuf:"bytes,6,rep,name=tags" json:"tags,omitempty"`
	Images         []*Listing_Item_Image  `protobuf:"bytes,7,rep,name=images" json:"images,omitempty"`
	Categories     []string               `protobuf:"bytes,8,rep,name=categories" json:"categories,omitempty"`
	Grams          float32                `protobuf:"fixed32,9,opt,name=grams" json:"grams,omitempty"`
	Condition      string                 `protobuf:"bytes,10,opt,name=condition" json:"condition,omitempty"`
	Options        []*Listing_Item_Option `protobuf:"bytes,11,rep,name=options" json:"options,omitempty"`
	Skus           []*Listing_Item_Sku    `protobuf:"bytes,12,rep,name=skus" json:"skus,omitempty"`
}

func (m *Listing_Item) Reset()                    { *m = Listing_Item{} }
func (m *Listing_Item) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item) ProtoMessage()               {}
func (*Listing_Item) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1} }

func (m *Listing_Item) GetTitle() string {
	if m != nil {
		return m.Title
	}
	return ""
}

func (m *Listing_Item) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Listing_Item) GetProcessingTime() string {
	if m != nil {
		return m.ProcessingTime
	}
	return ""
}

func (m *Listing_Item) GetPrice() uint64 {
	if m != nil {
		return m.Price
	}
	return 0
}

func (m *Listing_Item) GetNsfw() bool {
	if m != nil {
		return m.Nsfw
	}
	return false
}

func (m *Listing_Item) GetTags() []string {
	if m != nil {
		return m.Tags
	}
	return nil
}

func (m *Listing_Item) GetImages() []*Listing_Item_Image {
	if m != nil {
		return m.Images
	}
	return nil
}

func (m *Listing_Item) GetCategories() []string {
	if m != nil {
		return m.Categories
	}
	return nil
}

func (m *Listing_Item) GetGrams() float32 {
	if m != nil {
		return m.Grams
	}
	return 0
}

func (m *Listing_Item) GetCondition() string {
	if m != nil {
		return m.Condition
	}
	return ""
}

func (m *Listing_Item) GetOptions() []*Listing_Item_Option {
	if m != nil {
		return m.Options
	}
	return nil
}

func (m *Listing_Item) GetSkus() []*Listing_Item_Sku {
	if m != nil {
		return m.Skus
	}
	return nil
}

type Listing_Item_Option struct {
	Name        string                         `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Description string                         `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	Variants    []*Listing_Item_Option_Variant `protobuf:"bytes,3,rep,name=variants" json:"variants,omitempty"`
}

func (m *Listing_Item_Option) Reset()                    { *m = Listing_Item_Option{} }
func (m *Listing_Item_Option) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item_Option) ProtoMessage()               {}
func (*Listing_Item_Option) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1, 0} }

func (m *Listing_Item_Option) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_Item_Option) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Listing_Item_Option) GetVariants() []*Listing_Item_Option_Variant {
	if m != nil {
		return m.Variants
	}
	return nil
}

type Listing_Item_Option_Variant struct {
	Name  string              `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Image *Listing_Item_Image `protobuf:"bytes,2,opt,name=image" json:"image,omitempty"`
}

func (m *Listing_Item_Option_Variant) Reset()         { *m = Listing_Item_Option_Variant{} }
func (m *Listing_Item_Option_Variant) String() string { return proto.CompactTextString(m) }
func (*Listing_Item_Option_Variant) ProtoMessage()    {}
func (*Listing_Item_Option_Variant) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 1, 0, 0}
}

func (m *Listing_Item_Option_Variant) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_Item_Option_Variant) GetImage() *Listing_Item_Image {
	if m != nil {
		return m.Image
	}
	return nil
}

type Listing_Item_Sku struct {
	VariantCombo []uint32 `protobuf:"varint,1,rep,packed,name=variantCombo" json:"variantCombo,omitempty"`
	ProductID    string   `protobuf:"bytes,2,opt,name=productID" json:"productID,omitempty"`
	Surcharge    int64    `protobuf:"varint,3,opt,name=surcharge" json:"surcharge,omitempty"`
	Quantity     int64    `protobuf:"varint,4,opt,name=quantity" json:"quantity,omitempty"`
}

func (m *Listing_Item_Sku) Reset()                    { *m = Listing_Item_Sku{} }
func (m *Listing_Item_Sku) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item_Sku) ProtoMessage()               {}
func (*Listing_Item_Sku) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1, 1} }

func (m *Listing_Item_Sku) GetVariantCombo() []uint32 {
	if m != nil {
		return m.VariantCombo
	}
	return nil
}

func (m *Listing_Item_Sku) GetProductID() string {
	if m != nil {
		return m.ProductID
	}
	return ""
}

func (m *Listing_Item_Sku) GetSurcharge() int64 {
	if m != nil {
		return m.Surcharge
	}
	return 0
}

func (m *Listing_Item_Sku) GetQuantity() int64 {
	if m != nil {
		return m.Quantity
	}
	return 0
}

type Listing_Item_Image struct {
	Filename string `protobuf:"bytes,1,opt,name=filename" json:"filename,omitempty"`
	Original string `protobuf:"bytes,2,opt,name=original" json:"original,omitempty"`
	Large    string `protobuf:"bytes,3,opt,name=large" json:"large,omitempty"`
	Medium   string `protobuf:"bytes,4,opt,name=medium" json:"medium,omitempty"`
	Small    string `protobuf:"bytes,5,opt,name=small" json:"small,omitempty"`
	Tiny     string `protobuf:"bytes,6,opt,name=tiny" json:"tiny,omitempty"`
}

func (m *Listing_Item_Image) Reset()                    { *m = Listing_Item_Image{} }
func (m *Listing_Item_Image) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item_Image) ProtoMessage()               {}
func (*Listing_Item_Image) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1, 2} }

func (m *Listing_Item_Image) GetFilename() string {
	if m != nil {
		return m.Filename
	}
	return ""
}

func (m *Listing_Item_Image) GetOriginal() string {
	if m != nil {
		return m.Original
	}
	return ""
}

func (m *Listing_Item_Image) GetLarge() string {
	if m != nil {
		return m.Large
	}
	return ""
}

func (m *Listing_Item_Image) GetMedium() string {
	if m != nil {
		return m.Medium
	}
	return ""
}

func (m *Listing_Item_Image) GetSmall() string {
	if m != nil {
		return m.Small
	}
	return ""
}

func (m *Listing_Item_Image) GetTiny() string {
	if m != nil {
		return m.Tiny
	}
	return ""
}

type Listing_ShippingOption struct {
	Name          string                                `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Type          Listing_ShippingOption_ShippingType   `protobuf:"varint,2,opt,name=type,enum=Listing_ShippingOption_ShippingType" json:"type,omitempty"`
	Regions       []CountryCode                         `protobuf:"varint,3,rep,packed,name=regions,enum=CountryCode" json:"regions,omitempty"`
	ShippingRules *Listing_ShippingOption_ShippingRules `protobuf:"bytes,4,opt,name=shippingRules" json:"shippingRules,omitempty"`
	Services      []*Listing_ShippingOption_Service     `protobuf:"bytes,5,rep,name=services" json:"services,omitempty"`
}

func (m *Listing_ShippingOption) Reset()                    { *m = Listing_ShippingOption{} }
func (m *Listing_ShippingOption) String() string            { return proto.CompactTextString(m) }
func (*Listing_ShippingOption) ProtoMessage()               {}
func (*Listing_ShippingOption) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 2} }

func (m *Listing_ShippingOption) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_ShippingOption) GetType() Listing_ShippingOption_ShippingType {
	if m != nil {
		return m.Type
	}
	return Listing_ShippingOption_LOCAL_PICKUP
}

func (m *Listing_ShippingOption) GetRegions() []CountryCode {
	if m != nil {
		return m.Regions
	}
	return nil
}

func (m *Listing_ShippingOption) GetShippingRules() *Listing_ShippingOption_ShippingRules {
	if m != nil {
		return m.ShippingRules
	}
	return nil
}

func (m *Listing_ShippingOption) GetServices() []*Listing_ShippingOption_Service {
	if m != nil {
		return m.Services
	}
	return nil
}

type Listing_ShippingOption_Service struct {
	Name              string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Price             uint64 `protobuf:"varint,2,opt,name=price" json:"price,omitempty"`
	EstimatedDelivery string `protobuf:"bytes,3,opt,name=estimatedDelivery" json:"estimatedDelivery,omitempty"`
}

func (m *Listing_ShippingOption_Service) Reset()         { *m = Listing_ShippingOption_Service{} }
func (m *Listing_ShippingOption_Service) String() string { return proto.CompactTextString(m) }
func (*Listing_ShippingOption_Service) ProtoMessage()    {}
func (*Listing_ShippingOption_Service) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 0}
}

func (m *Listing_ShippingOption_Service) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_ShippingOption_Service) GetPrice() uint64 {
	if m != nil {
		return m.Price
	}
	return 0
}

func (m *Listing_ShippingOption_Service) GetEstimatedDelivery() string {
	if m != nil {
		return m.EstimatedDelivery
	}
	return ""
}

type Listing_ShippingOption_ShippingRules struct {
	RuleType Listing_ShippingOption_ShippingRules_RuleType `protobuf:"varint,1,opt,name=ruleType,enum=Listing_ShippingOption_ShippingRules_RuleType" json:"ruleType,omitempty"`
	Rules    []*Listing_ShippingOption_ShippingRules_Rule  `protobuf:"bytes,2,rep,name=rules" json:"rules,omitempty"`
}

func (m *Listing_ShippingOption_ShippingRules) Reset()         { *m = Listing_ShippingOption_ShippingRules{} }
func (m *Listing_ShippingOption_ShippingRules) String() string { return proto.CompactTextString(m) }
func (*Listing_ShippingOption_ShippingRules) ProtoMessage()    {}
func (*Listing_ShippingOption_ShippingRules) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 1}
}

func (m *Listing_ShippingOption_ShippingRules) GetRuleType() Listing_ShippingOption_ShippingRules_RuleType {
	if m != nil {
		return m.RuleType
	}
	return Listing_ShippingOption_ShippingRules_QUANTITY_DISCOUNT
}

func (m *Listing_ShippingOption_ShippingRules) GetRules() []*Listing_ShippingOption_ShippingRules_Rule {
	if m != nil {
		return m.Rules
	}
	return nil
}

type Listing_ShippingOption_ShippingRules_Rule struct {
	MinRange uint32 `protobuf:"varint,1,opt,name=minRange" json:"minRange,omitempty"`
	MaxRange uint32 `protobuf:"varint,2,opt,name=maxRange" json:"maxRange,omitempty"`
	Price    uint64 `protobuf:"varint,3,opt,name=price" json:"price,omitempty"`
}

func (m *Listing_ShippingOption_ShippingRules_Rule) Reset() {
	*m = Listing_ShippingOption_ShippingRules_Rule{}
}
func (m *Listing_ShippingOption_ShippingRules_Rule) String() string { return proto.CompactTextString(m) }
func (*Listing_ShippingOption_ShippingRules_Rule) ProtoMessage()    {}
func (*Listing_ShippingOption_ShippingRules_Rule) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 1, 0}
}

func (m *Listing_ShippingOption_ShippingRules_Rule) GetMinRange() uint32 {
	if m != nil {
		return m.MinRange
	}
	return 0
}

func (m *Listing_ShippingOption_ShippingRules_Rule) GetMaxRange() uint32 {
	if m != nil {
		return m.MaxRange
	}
	return 0
}

func (m *Listing_ShippingOption_ShippingRules_Rule) GetPrice() uint64 {
	if m != nil {
		return m.Price
	}
	return 0
}

type Listing_Tax struct {
	TaxType     string        `protobuf:"bytes,1,opt,name=taxType" json:"taxType,omitempty"`
	TaxRegions  []CountryCode `protobuf:"varint,2,rep,packed,name=taxRegions,enum=CountryCode" json:"taxRegions,omitempty"`
	TaxShipping bool          `protobuf:"varint,3,opt,name=taxShipping" json:"taxShipping,omitempty"`
	Percentage  float32       `protobuf:"fixed32,4,opt,name=percentage" json:"percentage,omitempty"`
}

func (m *Listing_Tax) Reset()                    { *m = Listing_Tax{} }
func (m *Listing_Tax) String() string            { return proto.CompactTextString(m) }
func (*Listing_Tax) ProtoMessage()               {}
func (*Listing_Tax) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 3} }

func (m *Listing_Tax) GetTaxType() string {
	if m != nil {
		return m.TaxType
	}
	return ""
}

func (m *Listing_Tax) GetTaxRegions() []CountryCode {
	if m != nil {
		return m.TaxRegions
	}
	return nil
}

func (m *Listing_Tax) GetTaxShipping() bool {
	if m != nil {
		return m.TaxShipping
	}
	return false
}

func (m *Listing_Tax) GetPercentage() float32 {
	if m != nil {
		return m.Percentage
	}
	return 0
}

type Listing_Coupon struct {
	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`

	Code isListing_Coupon_Code `protobuf_oneof:"code"`

	Discount isListing_Coupon_Discount `protobuf_oneof:"discount"`
}

func (m *Listing_Coupon) Reset()                    { *m = Listing_Coupon{} }
func (m *Listing_Coupon) String() string            { return proto.CompactTextString(m) }
func (*Listing_Coupon) ProtoMessage()               {}
func (*Listing_Coupon) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 4} }

type isListing_Coupon_Code interface {
	isListing_Coupon_Code()
}
type isListing_Coupon_Discount interface {
	isListing_Coupon_Discount()
}

type Listing_Coupon_Hash struct {
	Hash string `protobuf:"bytes,2,opt,name=hash,oneof"`
}
type Listing_Coupon_DiscountCode struct {
	DiscountCode string `protobuf:"bytes,3,opt,name=discountCode,oneof"`
}
type Listing_Coupon_PercentDiscount struct {
	PercentDiscount float32 `protobuf:"fixed32,5,opt,name=percentDiscount,oneof"`
}
type Listing_Coupon_PriceDiscount struct {
	PriceDiscount uint64 `protobuf:"varint,6,opt,name=priceDiscount,oneof"`
}

func (*Listing_Coupon_Hash) isListing_Coupon_Code()                {}
func (*Listing_Coupon_DiscountCode) isListing_Coupon_Code()        {}
func (*Listing_Coupon_PercentDiscount) isListing_Coupon_Discount() {}
func (*Listing_Coupon_PriceDiscount) isListing_Coupon_Discount()   {}

func (m *Listing_Coupon) GetCode() isListing_Coupon_Code {
	if m != nil {
		return m.Code
	}
	return nil
}
func (m *Listing_Coupon) GetDiscount() isListing_Coupon_Discount {
	if m != nil {
		return m.Discount
	}
	return nil
}

func (m *Listing_Coupon) GetTitle() string {
	if m != nil {
		return m.Title
	}
	return ""
}

func (m *Listing_Coupon) GetHash() string {
	if x, ok := m.GetCode().(*Listing_Coupon_Hash); ok {
		return x.Hash
	}
	return ""
}

func (m *Listing_Coupon) GetDiscountCode() string {
	if x, ok := m.GetCode().(*Listing_Coupon_DiscountCode); ok {
		return x.DiscountCode
	}
	return ""
}

func (m *Listing_Coupon) GetPercentDiscount() float32 {
	if x, ok := m.GetDiscount().(*Listing_Coupon_PercentDiscount); ok {
		return x.PercentDiscount
	}
	return 0
}

func (m *Listing_Coupon) GetPriceDiscount() uint64 {
	if x, ok := m.GetDiscount().(*Listing_Coupon_PriceDiscount); ok {
		return x.PriceDiscount
	}
	return 0
}

func (*Listing_Coupon) 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{}) {
	return _Listing_Coupon_OneofMarshaler, _Listing_Coupon_OneofUnmarshaler, _Listing_Coupon_OneofSizer, []interface{}{
		(*Listing_Coupon_Hash)(nil),
		(*Listing_Coupon_DiscountCode)(nil),
		(*Listing_Coupon_PercentDiscount)(nil),
		(*Listing_Coupon_PriceDiscount)(nil),
	}
}

func _Listing_Coupon_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Listing_Coupon)

	switch x := m.Code.(type) {
	case *Listing_Coupon_Hash:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.Hash)
	case *Listing_Coupon_DiscountCode:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.DiscountCode)
	case nil:
	default:
		return fmt.Errorf("Listing_Coupon.Code has unexpected type %T", x)
	}

	switch x := m.Discount.(type) {
	case *Listing_Coupon_PercentDiscount:
		b.EncodeVarint(5<<3 | proto.WireFixed32)
		b.EncodeFixed32(uint64(math.Float32bits(x.PercentDiscount)))
	case *Listing_Coupon_PriceDiscount:
		b.EncodeVarint(6<<3 | proto.WireVarint)
		b.EncodeVarint(uint64(x.PriceDiscount))
	case nil:
	default:
		return fmt.Errorf("Listing_Coupon.Discount has unexpected type %T", x)
	}
	return nil
}

func _Listing_Coupon_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Listing_Coupon)
	switch tag {
	case 2: 
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Code = &Listing_Coupon_Hash{x}
		return true, err
	case 3: 
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Code = &Listing_Coupon_DiscountCode{x}
		return true, err
	case 5: 
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.Discount = &Listing_Coupon_PercentDiscount{math.Float32frombits(uint32(x))}
		return true, err
	case 6: 
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Discount = &Listing_Coupon_PriceDiscount{x}
		return true, err
	default:
		return false, nil
	}
}

func _Listing_Coupon_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*Listing_Coupon)

	switch x := m.Code.(type) {
	case *Listing_Coupon_Hash:
		n += proto.SizeVarint(2<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Hash)))
		n += len(x.Hash)
	case *Listing_Coupon_DiscountCode:
		n += proto.SizeVarint(3<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.DiscountCode)))
		n += len(x.DiscountCode)
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}

	switch x := m.Discount.(type) {
	case *Listing_Coupon_PercentDiscount:
		n += proto.SizeVarint(5<<3 | proto.WireFixed32)
		n += 4
	case *Listing_Coupon_PriceDiscount:
		n += proto.SizeVarint(6<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.PriceDiscount))
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type Order struct {
	RefundAddress        string                     `protobuf:"bytes,1,opt,name=refundAddress" json:"refundAddress,omitempty"`
	RefundFee            uint64                     `protobuf:"varint,2,opt,name=refundFee" json:"refundFee,omitempty"`
	Shipping             *Order_Shipping            `protobuf:"bytes,3,opt,name=shipping" json:"shipping,omitempty"`
	BuyerID              *ID                        `protobuf:"bytes,4,opt,name=buyerID" json:"buyerID,omitempty"`
	Timestamp            *google_protobuf.Timestamp `protobuf:"bytes,5,opt,name=timestamp" json:"timestamp,omitempty"`
	Items                []*Order_Item              `protobuf:"bytes,6,rep,name=items" json:"items,omitempty"`
	Payment              *Order_Payment             `protobuf:"bytes,7,opt,name=payment" json:"payment,omitempty"`
	RatingKeys           [][]byte                   `protobuf:"bytes,8,rep,name=ratingKeys,proto3" json:"ratingKeys,omitempty"`
	AlternateContactInfo string                     `protobuf:"bytes,9,opt,name=alternateContactInfo" json:"alternateContactInfo,omitempty"`
}

func (m *Order) Reset()                    { *m = Order{} }
func (m *Order) String() string            { return proto.CompactTextString(m) }
func (*Order) ProtoMessage()               {}
func (*Order) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }

func (m *Order) GetRefundAddress() string {
	if m != nil {
		return m.RefundAddress
	}
	return ""
}

func (m *Order) GetRefundFee() uint64 {
	if m != nil {
		return m.RefundFee
	}
	return 0
}

func (m *Order) GetShipping() *Order_Shipping {
	if m != nil {
		return m.Shipping
	}
	return nil
}

func (m *Order) GetBuyerID() *ID {
	if m != nil {
		return m.BuyerID
	}
	return nil
}

func (m *Order) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Order) GetItems() []*Order_Item {
	if m != nil {
		return m.Items
	}
	return nil
}

func (m *Order) GetPayment() *Order_Payment {
	if m != nil {
		return m.Payment
	}
	return nil
}

func (m *Order) GetRatingKeys() [][]byte {
	if m != nil {
		return m.RatingKeys
	}
	return nil
}

func (m *Order) GetAlternateContactInfo() string {
	if m != nil {
		return m.AlternateContactInfo
	}
	return ""
}

type Order_Shipping struct {
	ShipTo       string      `protobuf:"bytes,1,opt,name=shipTo" json:"shipTo,omitempty"`
	Address      string      `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
	City         string      `protobuf:"bytes,3,opt,name=city" json:"city,omitempty"`
	State        string      `protobuf:"bytes,4,opt,name=state" json:"state,omitempty"`
	PostalCode   string      `protobuf:"bytes,5,opt,name=postalCode" json:"postalCode,omitempty"`
	Country      CountryCode `protobuf:"varint,6,opt,name=country,enum=CountryCode" json:"country,omitempty"`
	AddressNotes string      `protobuf:"bytes,7,opt,name=addressNotes" json:"addressNotes,omitempty"`
}

func (m *Order_Shipping) Reset()                    { *m = Order_Shipping{} }
func (m *Order_Shipping) String() string            { return proto.CompactTextString(m) }
func (*Order_Shipping) ProtoMessage()               {}
func (*Order_Shipping) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 0} }

func (m *Order_Shipping) GetShipTo() string {
	if m != nil {
		return m.ShipTo
	}
	return ""
}

func (m *Order_Shipping) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

func (m *Order_Shipping) GetCity() string {
	if m != nil {
		return m.City
	}
	return ""
}

func (m *Order_Shipping) GetState() string {
	if m != nil {
		return m.State
	}
	return ""
}

func (m *Order_Shipping) GetPostalCode() string {
	if m != nil {
		return m.PostalCode
	}
	return ""
}

func (m *Order_Shipping) GetCountry() CountryCode {
	if m != nil {
		return m.Country
	}
	return CountryCode_NA
}

func (m *Order_Shipping) GetAddressNotes() string {
	if m != nil {
		return m.AddressNotes
	}
	return ""
}

type Order_Item struct {
	ListingHash    string                     `protobuf:"bytes,1,opt,name=listingHash" json:"listingHash,omitempty"`
	Quantity       uint32                     `protobuf:"varint,2,opt,name=quantity" json:"quantity,omitempty"`
	Options        []*Order_Item_Option       `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"`
	ShippingOption *Order_Item_ShippingOption `protobuf:"bytes,4,opt,name=shippingOption" json:"shippingOption,omitempty"`
	Memo           string                     `protobuf:"bytes,5,opt,name=memo" json:"memo,omitempty"`
	CouponCodes    []string                   `protobuf:"bytes,6,rep,name=couponCodes" json:"couponCodes,omitempty"`
}

func (m *Order_Item) Reset()                    { *m = Order_Item{} }
func (m *Order_Item) String() string            { return proto.CompactTextString(m) }
func (*Order_Item) ProtoMessage()               {}
func (*Order_Item) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 1} }

func (m *Order_Item) GetListingHash() string {
	if m != nil {
		return m.ListingHash
	}
	return ""
}

func (m *Order_Item) GetQuantity() uint32 {
	if m != nil {
		return m.Quantity
	}
	return 0
}

func (m *Order_Item) GetOptions() []*Order_Item_Option {
	if m != nil {
		return m.Options
	}
	return nil
}

func (m *Order_Item) GetShippingOption() *Order_Item_ShippingOption {
	if m != nil {
		return m.ShippingOption
	}
	return nil
}

func (m *Order_Item) GetMemo() string {
	if m != nil {
		return m.Memo
	}
	return ""
}

func (m *Order_Item) GetCouponCodes() []string {
	if m != nil {
		return m.CouponCodes
	}
	return nil
}

type Order_Item_Option struct {
	Name  string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *Order_Item_Option) Reset()                    { *m = Order_Item_Option{} }
func (m *Order_Item_Option) String() string            { return proto.CompactTextString(m) }
func (*Order_Item_Option) ProtoMessage()               {}
func (*Order_Item_Option) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 1, 0} }

func (m *Order_Item_Option) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Order_Item_Option) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type Order_Item_ShippingOption struct {
	Name    string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Service string `protobuf:"bytes,2,opt,name=service" json:"service,omitempty"`
}

func (m *Order_Item_ShippingOption) Reset()                    { *m = Order_Item_ShippingOption{} }
func (m *Order_Item_ShippingOption) String() string            { return proto.CompactTextString(m) }
func (*Order_Item_ShippingOption) ProtoMessage()               {}
func (*Order_Item_ShippingOption) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 1, 1} }

func (m *Order_Item_ShippingOption) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Order_Item_ShippingOption) GetService() string {
	if m != nil {
		return m.Service
	}
	return ""
}

type Order_Payment struct {
	Method       Order_Payment_Method `protobuf:"varint,1,opt,name=method,enum=Order_Payment_Method" json:"method,omitempty"`
	Moderator    string               `protobuf:"bytes,2,opt,name=moderator" json:"moderator,omitempty"`
	Amount       uint64               `protobuf:"varint,3,opt,name=amount" json:"amount,omitempty"`
	Chaincode    string               `protobuf:"bytes,4,opt,name=chaincode" json:"chaincode,omitempty"`
	Address      string               `protobuf:"bytes,5,opt,name=address" json:"address,omitempty"`
	RedeemScript string               `protobuf:"bytes,6,opt,name=redeemScript" json:"redeemScript,omitempty"`
	ModeratorKey []byte               `protobuf:"bytes,7,opt,name=moderatorKey,proto3" json:"moderatorKey,omitempty"`
}

func (m *Order_Payment) Reset()                    { *m = Order_Payment{} }
func (m *Order_Payment) String() string            { return proto.CompactTextString(m) }
func (*Order_Payment) ProtoMessage()               {}
func (*Order_Payment) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 2} }

func (m *Order_Payment) GetMethod() Order_Payment_Method {
	if m != nil {
		return m.Method
	}
	return Order_Payment_ADDRESS_REQUEST
}

func (m *Order_Payment) GetModerator() string {
	if m != nil {
		return m.Moderator
	}
	return ""
}

func (m *Order_Payment) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

func (m *Order_Payment) GetChaincode() string {
	if m != nil {
		return m.Chaincode
	}
	return ""
}

func (m *Order_Payment) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

func (m *Order_Payment) GetRedeemScript() string {
	if m != nil {
		return m.RedeemScript
	}
	return ""
}

func (m *Order_Payment) GetModeratorKey() []byte {
	if m != nil {
		return m.ModeratorKey
	}
	return nil
}

type OrderConfirmation struct {
	OrderID   string                     `protobuf:"bytes,1,opt,name=orderID" json:"orderID,omitempty"`
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`

	PaymentAddress   string             `protobuf:"bytes,3,opt,name=paymentAddress" json:"paymentAddress,omitempty"`
	RequestedAmount  uint64             `protobuf:"varint,4,opt,name=requestedAmount" json:"requestedAmount,omitempty"`
	RatingSignatures []*RatingSignature `protobuf:"bytes,5,rep,name=ratingSignatures" json:"ratingSignatures,omitempty"`
}

func (m *OrderConfirmation) Reset()                    { *m = OrderConfirmation{} }
func (m *OrderConfirmation) String() string            { return proto.CompactTextString(m) }
func (*OrderConfirmation) ProtoMessage()               {}
func (*OrderConfirmation) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }

func (m *OrderConfirmation) GetOrderID() string {
	if m != nil {
		return m.OrderID
	}
	return ""
}

func (m *OrderConfirmation) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderConfirmation) GetPaymentAddress() string {
	if m != nil {
		return m.PaymentAddress
	}
	return ""
}

func (m *OrderConfirmation) GetRequestedAmount() uint64 {
	if m != nil {
		return m.RequestedAmount
	}
	return 0
}

func (m *OrderConfirmation) GetRatingSignatures() []*RatingSignature {
	if m != nil {
		return m.RatingSignatures
	}
	return nil
}

type OrderReject struct {
	OrderID   string                     `protobuf:"bytes,1,opt,name=orderID" json:"orderID,omitempty"`
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
	Sigs      []*BitcoinSignature        `protobuf:"bytes,3,rep,name=sigs" json:"sigs,omitempty"`
}

func (m *OrderReject) Reset()                    { *m = OrderReject{} }
func (m *OrderReject) String() string            { return proto.CompactTextString(m) }
func (*OrderReject) ProtoMessage()               {}
func (*OrderReject) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }

func (m *OrderReject) GetOrderID() string {
	if m != nil {
		return m.OrderID
	}
	return ""
}

func (m *OrderReject) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderReject) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

type RatingSignature struct {
	Metadata  *RatingSignature_TransactionMetadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"`
	Signature []byte                               `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *RatingSignature) Reset()                    { *m = RatingSignature{} }
func (m *RatingSignature) String() string            { return proto.CompactTextString(m) }
func (*RatingSignature) ProtoMessage()               {}
func (*RatingSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }

func (m *RatingSignature) GetMetadata() *RatingSignature_TransactionMetadata {
	if m != nil {
		return m.Metadata
	}
	return nil
}

func (m *RatingSignature) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

type RatingSignature_TransactionMetadata struct {
	ListingSlug  string `protobuf:"bytes,1,opt,name=listingSlug" json:"listingSlug,omitempty"`
	RatingKey    []byte `protobuf:"bytes,2,opt,name=ratingKey,proto3" json:"ratingKey,omitempty"`
	ModeratorKey []byte `protobuf:"bytes,3,opt,name=moderatorKey,proto3" json:"moderatorKey,omitempty"`
}

func (m *RatingSignature_TransactionMetadata) Reset()         { *m = RatingSignature_TransactionMetadata{} }
func (m *RatingSignature_TransactionMetadata) String() string { return proto.CompactTextString(m) }
func (*RatingSignature_TransactionMetadata) ProtoMessage()    {}
func (*RatingSignature_TransactionMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{5, 0}
}

func (m *RatingSignature_TransactionMetadata) GetListingSlug() string {
	if m != nil {
		return m.ListingSlug
	}
	return ""
}

func (m *RatingSignature_TransactionMetadata) GetRatingKey() []byte {
	if m != nil {
		return m.RatingKey
	}
	return nil
}

func (m *RatingSignature_TransactionMetadata) GetModeratorKey() []byte {
	if m != nil {
		return m.ModeratorKey
	}
	return nil
}

type BitcoinSignature struct {
	InputIndex uint32 `protobuf:"varint,1,opt,name=inputIndex" json:"inputIndex,omitempty"`
	Signature  []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *BitcoinSignature) Reset()                    { *m = BitcoinSignature{} }
func (m *BitcoinSignature) String() string            { return proto.CompactTextString(m) }
func (*BitcoinSignature) ProtoMessage()               {}
func (*BitcoinSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }

func (m *BitcoinSignature) GetInputIndex() uint32 {
	if m != nil {
		return m.InputIndex
	}
	return 0
}

func (m *BitcoinSignature) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

type OrderFulfillment struct {
	OrderId   string                     `protobuf:"bytes,1,opt,name=orderId" json:"orderId,omitempty"`
	Slug      string                     `protobuf:"bytes,2,opt,name=slug" json:"slug,omitempty"`
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp,omitempty"`

	PhysicalDelivery []*OrderFulfillment_PhysicalDelivery `protobuf:"bytes,4,rep,name=physicalDelivery" json:"physicalDelivery,omitempty"`

	DigitalDelivery []*OrderFulfillment_DigitalDelivery `protobuf:"bytes,5,rep,name=digitalDelivery" json:"digitalDelivery,omitempty"`

	Payout          *OrderFulfillment_Payout `protobuf:"bytes,6,opt,name=payout" json:"payout,omitempty"`
	RatingSignature *RatingSignature         `protobuf:"bytes,7,opt,name=ratingSignature" json:"ratingSignature,omitempty"`
	Note            string                   `protobuf:"bytes,8,opt,name=note" json:"note,omitempty"`
}

func (m *OrderFulfillment) Reset()                    { *m = OrderFulfillment{} }
func (m *OrderFulfillment) String() string            { return proto.CompactTextString(m) }
func (*OrderFulfillment) ProtoMessage()               {}
func (*OrderFulfillment) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }

func (m *OrderFulfillment) GetOrderId() string {
	if m != nil {
		return m.OrderId
	}
	return ""
}

func (m *OrderFulfillment) GetSlug() string {
	if m != nil {
		return m.Slug
	}
	return ""
}

func (m *OrderFulfillment) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderFulfillment) GetPhysicalDelivery() []*OrderFulfillment_PhysicalDelivery {
	if m != nil {
		return m.PhysicalDelivery
	}
	return nil
}

func (m *OrderFulfillment) GetDigitalDelivery() []*OrderFulfillment_DigitalDelivery {
	if m != nil {
		return m.DigitalDelivery
	}
	return nil
}

func (m *OrderFulfillment) GetPayout() *OrderFulfillment_Payout {
	if m != nil {
		return m.Payout
	}
	return nil
}

func (m *OrderFulfillment) GetRatingSignature() *RatingSignature {
	if m != nil {
		return m.RatingSignature
	}
	return nil
}

func (m *OrderFulfillment) GetNote() string {
	if m != nil {
		return m.Note
	}
	return ""
}

type OrderFulfillment_PhysicalDelivery struct {
	Shipper        string `protobuf:"bytes,1,opt,name=shipper" json:"shipper,omitempty"`
	TrackingNumber string `protobuf:"bytes,2,opt,name=trackingNumber" json:"trackingNumber,omitempty"`
}

func (m *OrderFulfillment_PhysicalDelivery) Reset()         { *m = OrderFulfillment_PhysicalDelivery{} }
func (m *OrderFulfillment_PhysicalDelivery) String() string { return proto.CompactTextString(m) }
func (*OrderFulfillment_PhysicalDelivery) ProtoMessage()    {}
func (*OrderFulfillment_PhysicalDelivery) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{7, 0}
}

func (m *OrderFulfillment_PhysicalDelivery) GetShipper() string {
	if m != nil {
		return m.Shipper
	}
	return ""
}

func (m *OrderFulfillment_PhysicalDelivery) GetTrackingNumber() string {
	if m != nil {
		return m.TrackingNumber
	}
	return ""
}

type OrderFulfillment_DigitalDelivery struct {
	Url      string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
}

func (m *OrderFulfillment_DigitalDelivery) Reset()         { *m = OrderFulfillment_DigitalDelivery{} }
func (m *OrderFulfillment_DigitalDelivery) String() string { return proto.CompactTextString(m) }
func (*OrderFulfillment_DigitalDelivery) ProtoMessage()    {}
func (*OrderFulfillment_DigitalDelivery) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{7, 1}
}

func (m *OrderFulfillment_DigitalDelivery) GetUrl() string {
	if m != nil {
		return m.Url
	}
	return ""
}

func (m *OrderFulfillment_DigitalDelivery) GetPassword() string {
	if m != nil {
		return m.Password
	}
	return ""
}

type OrderFulfillment_Payout struct {
	Sigs             []*BitcoinSignature `protobuf:"bytes,1,rep,name=sigs" json:"sigs,omitempty"`
	PayoutAddress    string              `protobuf:"bytes,2,opt,name=payoutAddress" json:"payoutAddress,omitempty"`
	PayoutFeePerByte uint64              `protobuf:"varint,3,opt,name=payoutFeePerByte" json:"payoutFeePerByte,omitempty"`
}

func (m *OrderFulfillment_Payout) Reset()                    { *m = OrderFulfillment_Payout{} }
func (m *OrderFulfillment_Payout) String() string            { return proto.CompactTextString(m) }
func (*OrderFulfillment_Payout) ProtoMessage()               {}
func (*OrderFulfillment_Payout) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7, 2} }

func (m *OrderFulfillment_Payout) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

func (m *OrderFulfillment_Payout) GetPayoutAddress() string {
	if m != nil {
		return m.PayoutAddress
	}
	return ""
}

func (m *OrderFulfillment_Payout) GetPayoutFeePerByte() uint64 {
	if m != nil {
		return m.PayoutFeePerByte
	}
	return 0
}

type OrderCompletion struct {
	OrderId    string                     `protobuf:"bytes,1,opt,name=orderId" json:"orderId,omitempty"`
	Timestamp  *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
	PayoutSigs []*BitcoinSignature        `protobuf:"bytes,3,rep,name=payoutSigs" json:"payoutSigs,omitempty"`
	Ratings    []*Rating                  `protobuf:"bytes,4,rep,name=ratings" json:"ratings,omitempty"`
}

func (m *OrderCompletion) Reset()                    { *m = OrderCompletion{} }
func (m *OrderCompletion) String() string            { return proto.CompactTextString(m) }
func (*OrderCompletion) ProtoMessage()               {}
func (*OrderCompletion) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }

func (m *OrderCompletion) GetOrderId() string {
	if m != nil {
		return m.OrderId
	}
	return ""
}

func (m *OrderCompletion) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderCompletion) GetPayoutSigs() []*BitcoinSignature {
	if m != nil {
		return m.PayoutSigs
	}
	return nil
}

func (m *OrderCompletion) GetRatings() []*Rating {
	if m != nil {
		return m.Ratings
	}
	return nil
}

type Rating struct {
	RatingData *Rating_RatingData `protobuf:"bytes,1,opt,name=ratingData" json:"ratingData,omitempty"`
	Signature  []byte             `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *Rating) Reset()                    { *m = Rating{} }
func (m *Rating) String() string            { return proto.CompactTextString(m) }
func (*Rating) ProtoMessage()               {}
func (*Rating) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }

func (m *Rating) GetRatingData() *Rating_RatingData {
	if m != nil {
		return m.RatingData
	}
	return nil
}

func (m *Rating) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

type Rating_RatingData struct {
	RatingKey       []byte                     `protobuf:"bytes,1,opt,name=ratingKey,proto3" json:"ratingKey,omitempty"`
	VendorID        *ID                        `protobuf:"bytes,2,opt,name=vendorID" json:"vendorID,omitempty"`
	VendorSig       *RatingSignature           `protobuf:"bytes,3,opt,name=vendorSig" json:"vendorSig,omitempty"`
	BuyerID         *ID                        `protobuf:"bytes,4,opt,name=buyerID" json:"buyerID,omitempty"`
	BuyerName       string                     `protobuf:"bytes,5,opt,name=buyerName" json:"buyerName,omitempty"`
	BuyerSig        []byte                     `protobuf:"bytes,6,opt,name=buyerSig,proto3" json:"buyerSig,omitempty"`
	ModeratorSig    []byte                     `protobuf:"bytes,7,opt,name=moderatorSig,proto3" json:"moderatorSig,omitempty"`
	Timestamp       *google_protobuf.Timestamp `protobuf:"bytes,8,opt,name=timestamp" json:"timestamp,omitempty"`
	Overall         uint32                     `protobuf:"varint,9,opt,name=overall" json:"overall,omitempty"`
	Quality         uint32                     `protobuf:"varint,10,opt,name=quality" json:"quality,omitempty"`
	Description     uint32                     `protobuf:"varint,11,opt,name=description" json:"description,omitempty"`
	DeliverySpeed   uint32                     `protobuf:"varint,12,opt,name=deliverySpeed" json:"deliverySpeed,omitempty"`
	CustomerService uint32                     `protobuf:"varint,13,opt,name=customerService" json:"customerService,omitempty"`
	Review          string                     `protobuf:"bytes,14,opt,name=review" json:"review,omitempty"`
}

func (m *Rating_RatingData) Reset()                    { *m = Rating_RatingData{} }
func (m *Rating_RatingData) String() string            { return proto.CompactTextString(m) }
func (*Rating_RatingData) ProtoMessage()               {}
func (*Rating_RatingData) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9, 0} }

func (m *Rating_RatingData) GetRatingKey() []byte {
	if m != nil {
		return m.RatingKey
	}
	return nil
}

func (m *Rating_RatingData) GetVendorID() *ID {
	if m != nil {
		return m.VendorID
	}
	return nil
}

func (m *Rating_RatingData) GetVendorSig() *RatingSignature {
	if m != nil {
		return m.VendorSig
	}
	return nil
}

func (m *Rating_RatingData) GetBuyerID() *ID {
	if m != nil {
		return m.BuyerID
	}
	return nil
}

func (m *Rating_RatingData) GetBuyerName() string {
	if m != nil {
		return m.BuyerName
	}
	return ""
}

func (m *Rating_RatingData) GetBuyerSig() []byte {
	if m != nil {
		return m.BuyerSig
	}
	return nil
}

func (m *Rating_RatingData) GetModeratorSig() []byte {
	if m != nil {
		return m.ModeratorSig
	}
	return nil
}

func (m *Rating_RatingData) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Rating_RatingData) GetOverall() uint32 {
	if m != nil {
		return m.Overall
	}
	return 0
}

func (m *Rating_RatingData) GetQuality() uint32 {
	if m != nil {
		return m.Quality
	}
	return 0
}

func (m *Rating_RatingData) GetDescription() uint32 {
	if m != nil {
		return m.Description
	}
	return 0
}

func (m *Rating_RatingData) GetDeliverySpeed() uint32 {
	if m != nil {
		return m.DeliverySpeed
	}
	return 0
}

func (m *Rating_RatingData) GetCustomerService() uint32 {
	if m != nil {
		return m.CustomerService
	}
	return 0
}

func (m *Rating_RatingData) GetReview() string {
	if m != nil {
		return m.Review
	}
	return ""
}

type Dispute struct {
	Timestamp          *google_protobuf.Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"`
	Claim              string                     `protobuf:"bytes,2,opt,name=claim" json:"claim,omitempty"`
	PayoutAddress      string                     `protobuf:"bytes,3,opt,name=payoutAddress" json:"payoutAddress,omitempty"`
	Outpoints          []*Outpoint                `protobuf:"bytes,4,rep,name=outpoints" json:"outpoints,omitempty"`
	SerializedContract []byte                     `protobuf:"bytes,5,opt,name=serializedContract,proto3" json:"serializedContract,omitempty"`
}

func (m *Dispute) Reset()                    { *m = Dispute{} }
func (m *Dispute) String() string            { return proto.CompactTextString(m) }
func (*Dispute) ProtoMessage()               {}
func (*Dispute) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} }

func (m *Dispute) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Dispute) GetClaim() string {
	if m != nil {
		return m.Claim
	}
	return ""
}

func (m *Dispute) GetPayoutAddress() string {
	if m != nil {
		return m.PayoutAddress
	}
	return ""
}

func (m *Dispute) GetOutpoints() []*Outpoint {
	if m != nil {
		return m.Outpoints
	}
	return nil
}

func (m *Dispute) GetSerializedContract() []byte {
	if m != nil {
		return m.SerializedContract
	}
	return nil
}

type DisputeResolution struct {
	Timestamp           *google_protobuf.Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"`
	OrderId             string                     `protobuf:"bytes,2,opt,name=orderId" json:"orderId,omitempty"`
	ProposedBy          string                     `protobuf:"bytes,3,opt,name=proposedBy" json:"proposedBy,omitempty"`
	Resolution          string                     `protobuf:"bytes,4,opt,name=resolution" json:"resolution,omitempty"`
	Payout              *DisputeResolution_Payout  `protobuf:"bytes,5,opt,name=payout" json:"payout,omitempty"`
	ModeratorRatingSigs [][]byte                   `protobuf:"bytes,6,rep,name=moderatorRatingSigs,proto3" json:"moderatorRatingSigs,omitempty"`
}

func (m *DisputeResolution) Reset()                    { *m = DisputeResolution{} }
func (m *DisputeResolution) String() string            { return proto.CompactTextString(m) }
func (*DisputeResolution) ProtoMessage()               {}
func (*DisputeResolution) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} }

func (m *DisputeResolution) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *DisputeResolution) GetOrderId() string {
	if m != nil {
		return m.OrderId
	}
	return ""
}

func (m *DisputeResolution) GetProposedBy() string {
	if m != nil {
		return m.ProposedBy
	}
	return ""
}

func (m *DisputeResolution) GetResolution() string {
	if m != nil {
		return m.Resolution
	}
	return ""
}

func (m *DisputeResolution) GetPayout() *DisputeResolution_Payout {
	if m != nil {
		return m.Payout
	}
	return nil
}

func (m *DisputeResolution) GetModeratorRatingSigs() [][]byte {
	if m != nil {
		return m.ModeratorRatingSigs
	}
	return nil
}

type DisputeResolution_Payout struct {
	Sigs            []*BitcoinSignature              `protobuf:"bytes,1,rep,name=sigs" json:"sigs,omitempty"`
	Inputs          []*Outpoint                      `protobuf:"bytes,2,rep,name=inputs" json:"inputs,omitempty"`
	BuyerOutput     *DisputeResolution_Payout_Output `protobuf:"bytes,3,opt,name=buyerOutput" json:"buyerOutput,omitempty"`
	VendorOutput    *DisputeResolution_Payout_Output `protobuf:"bytes,4,opt,name=vendorOutput" json:"vendorOutput,omitempty"`
	ModeratorOutput *DisputeResolution_Payout_Output `protobuf:"bytes,5,opt,name=moderatorOutput" json:"moderatorOutput,omitempty"`
}

func (m *DisputeResolution_Payout) Reset()                    { *m = DisputeResolution_Payout{} }
func (m *DisputeResolution_Payout) String() string            { return proto.CompactTextString(m) }
func (*DisputeResolution_Payout) ProtoMessage()               {}
func (*DisputeResolution_Payout) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11, 0} }

func (m *DisputeResolution_Payout) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

func (m *DisputeResolution_Payout) GetInputs() []*Outpoint {
	if m != nil {
		return m.Inputs
	}
	return nil
}

func (m *DisputeResolution_Payout) GetBuyerOutput() *DisputeResolution_Payout_Output {
	if m != nil {
		return m.BuyerOutput
	}
	return nil
}

func (m *DisputeResolution_Payout) GetVendorOutput() *DisputeResolution_Payout_Output {
	if m != nil {
		return m.VendorOutput
	}
	return nil
}

func (m *DisputeResolution_Payout) GetModeratorOutput() *DisputeResolution_Payout_Output {
	if m != nil {
		return m.ModeratorOutput
	}
	return nil
}

type DisputeResolution_Payout_Output struct {
	Script string `protobuf:"bytes,1,opt,name=script" json:"script,omitempty"`
	Amount uint64 `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
}

func (m *DisputeResolution_Payout_Output) Reset()         { *m = DisputeResolution_Payout_Output{} }
func (m *DisputeResolution_Payout_Output) String() string { return proto.CompactTextString(m) }
func (*DisputeResolution_Payout_Output) ProtoMessage()    {}
func (*DisputeResolution_Payout_Output) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{11, 0, 0}
}

func (m *DisputeResolution_Payout_Output) GetScript() string {
	if m != nil {
		return m.Script
	}
	return ""
}

func (m *DisputeResolution_Payout_Output) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

type DisputeAcceptance struct {
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"`
	ClosedBy  string                     `protobuf:"bytes,2,opt,name=closedBy" json:"closedBy,omitempty"`
}

func (m *DisputeAcceptance) Reset()                    { *m = DisputeAcceptance{} }
func (m *DisputeAcceptance) String() string            { return proto.CompactTextString(m) }
func (*DisputeAcceptance) ProtoMessage()               {}
func (*DisputeAcceptance) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{12} }

func (m *DisputeAcceptance) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *DisputeAcceptance) GetClosedBy() string {
	if m != nil {
		return m.ClosedBy
	}
	return ""
}

type Outpoint struct {
	Hash  string `protobuf:"bytes,1,opt,name=hash" json:"hash,omitempty"`
	Index uint32 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"`
	Value uint64 `protobuf:"varint,3,opt,name=value" json:"value,omitempty"`
}

func (m *Outpoint) Reset()                    { *m = Outpoint{} }
func (m *Outpoint) String() string            { return proto.CompactTextString(m) }
func (*Outpoint) ProtoMessage()               {}
func (*Outpoint) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{13} }

func (m *Outpoint) GetHash() string {
	if m != nil {
		return m.Hash
	}
	return ""
}

func (m *Outpoint) GetIndex() uint32 {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *Outpoint) GetValue() uint64 {
	if m != nil {
		return m.Value
	}
	return 0
}

type Refund struct {
	OrderID           string                     `protobuf:"bytes,1,opt,name=orderID" json:"orderID,omitempty"`
	Timestamp         *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
	Sigs              []*BitcoinSignature        `protobuf:"bytes,3,rep,name=sigs" json:"sigs,omitempty"`
	RefundTransaction *Refund_TransactionInfo    `protobuf:"bytes,4,opt,name=refundTransaction" json:"refundTransaction,omitempty"`
	Memo              string                     `protobuf:"bytes,5,opt,name=memo" json:"memo,omitempty"`
}

func (m *Refund) Reset()                    { *m = Refund{} }
func (m *Refund) String() string            { return proto.CompactTextString(m) }
func (*Refund) ProtoMessage()               {}
func (*Refund) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14} }

func (m *Refund) GetOrderID() string {
	if m != nil {
		return m.OrderID
	}
	return ""
}

func (m *Refund) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Refund) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

func (m *Refund) GetRefundTransaction() *Refund_TransactionInfo {
	if m != nil {
		return m.RefundTransaction
	}
	return nil
}

func (m *Refund) GetMemo() string {
	if m != nil {
		return m.Memo
	}
	return ""
}

type Refund_TransactionInfo struct {
	Txid  string `protobuf:"bytes,1,opt,name=txid" json:"txid,omitempty"`
	Value uint64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}

func (m *Refund_TransactionInfo) Reset()                    { *m = Refund_TransactionInfo{} }
func (m *Refund_TransactionInfo) String() string            { return proto.CompactTextString(m) }
func (*Refund_TransactionInfo) ProtoMessage()               {}
func (*Refund_TransactionInfo) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14, 0} }

func (m *Refund_TransactionInfo) GetTxid() string {
	if m != nil {
		return m.Txid
	}
	return ""
}

func (m *Refund_TransactionInfo) GetValue() uint64 {
	if m != nil {
		return m.Value
	}
	return 0
}

type ID struct {
	PeerID       string      `protobuf:"bytes,1,opt,name=peerID" json:"peerID,omitempty"`
	BlockchainID string      `protobuf:"bytes,2,opt,name=blockchainID" json:"blockchainID,omitempty"`
	Pubkeys      *ID_Pubkeys `protobuf:"bytes,3,opt,name=pubkeys" json:"pubkeys,omitempty"`
	BitcoinSig   []byte      `protobuf:"bytes,4,opt,name=bitcoinSig,proto3" json:"bitcoinSig,omitempty"`
}

func (m *ID) Reset()                    { *m = ID{} }
func (m *ID) String() string            { return proto.CompactTextString(m) }
func (*ID) ProtoMessage()               {}
func (*ID) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15} }

func (m *ID) GetPeerID() string {
	if m != nil {
		return m.PeerID
	}
	return ""
}

func (m *ID) GetBlockchainID() string {
	if m != nil {
		return m.BlockchainID
	}
	return ""
}

func (m *ID) GetPubkeys() *ID_Pubkeys {
	if m != nil {
		return m.Pubkeys
	}
	return nil
}

func (m *ID) GetBitcoinSig() []byte {
	if m != nil {
		return m.BitcoinSig
	}
	return nil
}

type ID_Pubkeys struct {
	Identity []byte `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"`
	Bitcoin  []byte `protobuf:"bytes,2,opt,name=bitcoin,proto3" json:"bitcoin,omitempty"`
}

func (m *ID_Pubkeys) Reset()                    { *m = ID_Pubkeys{} }
func (m *ID_Pubkeys) String() string            { return proto.CompactTextString(m) }
func (*ID_Pubkeys) ProtoMessage()               {}
func (*ID_Pubkeys) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15, 0} }

func (m *ID_Pubkeys) GetIdentity() []byte {
	if m != nil {
		return m.Identity
	}
	return nil
}

func (m *ID_Pubkeys) GetBitcoin() []byte {
	if m != nil {
		return m.Bitcoin
	}
	return nil
}

type Signature struct {
	Section        Signature_Section `protobuf:"varint,1,opt,name=section,enum=Signature_Section" json:"section,omitempty"`
	SignatureBytes []byte            `protobuf:"bytes,2,opt,name=signatureBytes,proto3" json:"signatureBytes,omitempty"`
}

func (m *Signature) Reset()                    { *m = Signature{} }
func (m *Signature) String() string            { return proto.CompactTextString(m) }
func (*Signature) ProtoMessage()               {}
func (*Signature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{16} }

func (m *Signature) GetSection() Signature_Section {
	if m != nil {
		return m.Section
	}
	return Signature_LISTING
}

func (m *Signature) GetSignatureBytes() []byte {
	if m != nil {
		return m.SignatureBytes
	}
	return nil
}

type SignedListing struct {
	Listing   *Listing `protobuf:"bytes,1,opt,name=listing" json:"listing,omitempty"`
	Hash      string   `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"`
	Signature []byte   `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *SignedListing) Reset()                    { *m = SignedListing{} }
func (m *SignedListing) String() string            { return proto.CompactTextString(m) }
func (*SignedListing) ProtoMessage()               {}
func (*SignedListing) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{17} }

func (m *SignedListing) GetListing() *Listing {
	if m != nil {
		return m.Listing
	}
	return nil
}

func (m *SignedListing) GetHash() string {
	if m != nil {
		return m.Hash
	}
	return ""
}

func (m *SignedListing) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

func init() {
	proto.RegisterType((*RicardianContract)(nil), "RicardianContract")
	proto.RegisterType((*Listing)(nil), "Listing")
	proto.RegisterType((*Listing_Metadata)(nil), "Listing.Metadata")
	proto.RegisterType((*Listing_Item)(nil), "Listing.Item")
	proto.RegisterType((*Listing_Item_Option)(nil), "Listing.Item.Option")
	proto.RegisterType((*Listing_Item_Option_Variant)(nil), "Listing.Item.Option.Variant")
	proto.RegisterType((*Listing_Item_Sku)(nil), "Listing.Item.Sku")
	proto.RegisterType((*Listing_Item_Image)(nil), "Listing.Item.Image")
	proto.RegisterType((*Listing_ShippingOption)(nil), "Listing.ShippingOption")
	proto.RegisterType((*Listing_ShippingOption_Service)(nil), "Listing.ShippingOption.Service")
	proto.RegisterType((*Listing_ShippingOption_ShippingRules)(nil), "Listing.ShippingOption.ShippingRules")
	proto.RegisterType((*Listing_ShippingOption_ShippingRules_Rule)(nil), "Listing.ShippingOption.ShippingRules.Rule")
	proto.RegisterType((*Listing_Tax)(nil), "Listing.Tax")
	proto.RegisterType((*Listing_Coupon)(nil), "Listing.Coupon")
	proto.RegisterType((*Order)(nil), "Order")
	proto.RegisterType((*Order_Shipping)(nil), "Order.Shipping")
	proto.RegisterType((*Order_Item)(nil), "Order.Item")
	proto.RegisterType((*Order_Item_Option)(nil), "Order.Item.Option")
	proto.RegisterType((*Order_Item_ShippingOption)(nil), "Order.Item.ShippingOption")
	proto.RegisterType((*Order_Payment)(nil), "Order.Payment")
	proto.RegisterType((*OrderConfirmation)(nil), "OrderConfirmation")
	proto.RegisterType((*OrderReject)(nil), "OrderReject")
	proto.RegisterType((*RatingSignature)(nil), "RatingSignature")
	proto.RegisterType((*RatingSignature_TransactionMetadata)(nil), "RatingSignature.TransactionMetadata")
	proto.RegisterType((*BitcoinSignature)(nil), "BitcoinSignature")
	proto.RegisterType((*OrderFulfillment)(nil), "OrderFulfillment")
	proto.RegisterType((*OrderFulfillment_PhysicalDelivery)(nil), "OrderFulfillment.PhysicalDelivery")
	proto.RegisterType((*OrderFulfillment_DigitalDelivery)(nil), "OrderFulfillment.DigitalDelivery")
	proto.RegisterType((*OrderFulfillment_Payout)(nil), "OrderFulfillment.Payout")
	proto.RegisterType((*OrderCompletion)(nil), "OrderCompletion")
	proto.RegisterType((*Rating)(nil), "Rating")
	proto.RegisterType((*Rating_RatingData)(nil), "Rating.RatingData")
	proto.RegisterType((*Dispute)(nil), "Dispute")
	proto.RegisterType((*DisputeResolution)(nil), "DisputeResolution")
	proto.RegisterType((*DisputeResolution_Payout)(nil), "DisputeResolution.Payout")
	proto.RegisterType((*DisputeResolution_Payout_Output)(nil), "DisputeResolution.Payout.Output")
	proto.RegisterType((*DisputeAcceptance)(nil), "DisputeAcceptance")
	proto.RegisterType((*Outpoint)(nil), "Outpoint")
	proto.RegisterType((*Refund)(nil), "Refund")
	proto.RegisterType((*Refund_TransactionInfo)(nil), "Refund.TransactionInfo")
	proto.RegisterType((*ID)(nil), "ID")
	proto.RegisterType((*ID_Pubkeys)(nil), "ID.Pubkeys")
	proto.RegisterType((*Signature)(nil), "Signature")
	proto.RegisterType((*SignedListing)(nil), "SignedListing")
	proto.RegisterEnum("Listing_Metadata_ContractType", Listing_Metadata_ContractType_name, Listing_Metadata_ContractType_value)
	proto.RegisterEnum("Listing_Metadata_Format", Listing_Metadata_Format_name, Listing_Metadata_Format_value)
	proto.RegisterEnum("Listing_ShippingOption_ShippingType", Listing_ShippingOption_ShippingType_name, Listing_ShippingOption_ShippingType_value)
	proto.RegisterEnum("Listing_ShippingOption_ShippingRules_RuleType", Listing_ShippingOption_ShippingRules_RuleType_name, Listing_ShippingOption_ShippingRules_RuleType_value)
	proto.RegisterEnum("Order_Payment_Method", Order_Payment_Method_name, Order_Payment_Method_value)
	proto.RegisterEnum("Signature_Section", Signature_Section_name, Signature_Section_value)
}

func init() { proto.RegisterFile("contracts.proto", fileDescriptor1) }

var fileDescriptor1 = []byte{

	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xc4, 0x5a, 0xcd, 0x73, 0x1b, 0xc7,
	0x95, 0xd7, 0xe0, 0x1b, 0x8f, 0x20, 0x09, 0xb6, 0x28, 0x09, 0xc6, 0x7a, 0x2d, 0x09, 0x25, 0x6b,
	0x65, 0x59, 0x1e, 0xcb, 0xdc, 0x8b, 0x6a, 0xbd, 0xb5, 0x36, 0x88, 0x01, 0xc5, 0xb1, 0x28, 0x12,
	0x6e, 0x80, 0xf6, 0x7a, 0x2f, 0xac, 0xe1, 0x4c, 0x13, 0x9c, 0xd5, 0x60, 0x06, 0x9e, 0xe9, 0xa1,
	0x88, 0xbd, 0xed, 0x2d, 0x95, 0x4b, 0x2e, 0xa9, 0xf2, 0x21, 0xff, 0x40, 0xee, 0xc9, 0x2d, 0xa7,
	0xe4, 0x94, 0x4b, 0x2e, 0xa9, 0x4a, 0x55, 0x6e, 0x49, 0xe5, 0x9c, 0x4a, 0x25, 0x97, 0xe4, 0x90,
	0x4b, 0xaa, 0xbf, 0xe6, 0x0b, 0xd0, 0x97, 0x53, 0xa9, 0x9c, 0x30, 0xef, 0xf7, 0x5e, 0xf7, 0x74,
	0xbf, 0x7e, 0x9f, 0x3d, 0x80, 0x4d, 0x3b, 0xf0, 0x69, 0x68, 0xd9, 0x34, 0xd2, 0xe7, 0x61, 0x40,
	0x83, 0x2e, 0xb2, 0x83, 0xd8, 0xa7, 0xe1, 0xc2, 0x0e, 0x1c, 0xa2, 0xb0, 0x9b, 0xd3, 0x20, 0x98,
	0x7a, 0xe4, 0x43, 0x4e, 0x9d, 0xc6, 0x67, 0x1f, 0x52, 0x77, 0x46, 0x22, 0x6a, 0xcd, 0xe6, 0x42,
	0xa0, 0xf7, 0xd3, 0x0a, 0x6c, 0x61, 0xd7, 0xb6, 0x42, 0xc7, 0xb5, 0xfc, 0x81, 0x9c, 0x11, 0x3d,
	0x84, 0x8d, 0x0b, 0xe2, 0x3b, 0x41, 0x78, 0xe0, 0x46, 0xd4, 0xf5, 0xa7, 0x51, 0x47, 0xbb, 0x55,
	0xbe, 0xb7, 0xb6, 0xd3, 0xd0, 0x25, 0x80, 0x0b, 0x7c, 0x74, 0x17, 0xe0, 0x34, 0x5e, 0x90, 0xf0,
	0x28, 0x74, 0x48, 0xd8, 0x29, 0xdd, 0xd2, 0xee, 0xad, 0xed, 0xd4, 0x74, 0x4e, 0xe1, 0x0c, 0x07,
	0x1d, 0xc0, 0x0d, 0x31, 0x92, 0x93, 0x83, 0xc0, 0x3f, 0x73, 0xc3, 0x99, 0x45, 0xdd, 0xc0, 0xef,
	0x94, 0xf9, 0x20, 0xa4, 0x2f, 0x71, 0xf0, 0x8b, 0x86, 0x20, 0x13, 0xae, 0x67, 0x58, 0x7b, 0xb1,
	0x77, 0xe6, 0x7a, 0xde, 0x8c, 0xf8, 0xb4, 0x53, 0xe1, 0xeb, 0xdd, 0xd2, 0x8b, 0x0c, 0xfc, 0x82,
	0x01, 0xc8, 0x80, 0xed, 0x74, 0x99, 0x83, 0x60, 0x36, 0xf7, 0x08, 0x5f, 0x55, 0x95, 0xaf, 0xaa,
	0xad, 0x17, 0x70, 0xbc, 0x52, 0x1a, 0xf5, 0xa0, 0xee, 0xb8, 0xd1, 0x3c, 0xa6, 0xa4, 0x53, 0xe3,
	0x03, 0x1b, 0xba, 0x21, 0x68, 0xac, 0x18, 0xe8, 0x53, 0xd8, 0x92, 0x8f, 0x98, 0x44, 0x81, 0x17,
	0xf3, 0xd7, 0xd4, 0xe5, 0xe6, 0x8d, 0x22, 0x07, 0x2f, 0x0b, 0x67, 0x66, 0xe8, 0xdb, 0x36, 0x99,
	0x53, 0xcb, 0xb7, 0x49, 0xa7, 0x91, 0x9f, 0x21, 0xe5, 0xe0, 0x65, 0x61, 0x74, 0x13, 0x6a, 0x21,
	0x39, 0x8b, 0x7d, 0xa7, 0xd3, 0xe4, 0xc3, 0xea, 0x3a, 0xe6, 0x24, 0x96, 0x30, 0xba, 0x0f, 0x10,
	0xb9, 0x53, 0xdf, 0xa2, 0x71, 0x48, 0xa2, 0x0e, 0x70, 0x6d, 0x82, 0x3e, 0x56, 0x10, 0xce, 0x70,
	0x7b, 0x7f, 0xbe, 0x0e, 0x75, 0x69, 0x08, 0x08, 0x41, 0x25, 0xf2, 0xe2, 0x69, 0x47, 0xbb, 0xa5,
	0xdd, 0x6b, 0x62, 0xfe, 0x8c, 0x6e, 0x42, 0x43, 0x28, 0xdd, 0x34, 0xa4, 0x65, 0x94, 0x75, 0xd3,
	0xc0, 0x09, 0x88, 0x3e, 0x80, 0xc6, 0x8c, 0x50, 0xcb, 0xb1, 0xa8, 0x25, 0xad, 0x60, 0x4b, 0x19,
	0x9a, 0xfe, 0x54, 0x32, 0x70, 0x22, 0x82, 0x6e, 0x43, 0xc5, 0xa5, 0x64, 0xd6, 0xa9, 0x70, 0xd1,
	0xf5, 0x44, 0xd4, 0xa4, 0x64, 0x86, 0x39, 0x0b, 0xf5, 0x61, 0x33, 0x3a, 0x77, 0xe7, 0x73, 0xd7,
	0x9f, 0x1e, 0xcd, 0x99, 0xce, 0xa2, 0x4e, 0x95, 0xef, 0xe1, 0x46, 0x22, 0x3d, 0xce, 0xf1, 0x71,
	0x51, 0x1e, 0xf5, 0xa0, 0x4a, 0xad, 0x4b, 0x12, 0x75, 0x6a, 0x7c, 0x60, 0x2b, 0x19, 0x38, 0xb1,
	0x2e, 0xb1, 0x60, 0xa1, 0xf7, 0xa0, 0x6e, 0x07, 0xf1, 0x9c, 0x4d, 0x5f, 0xe7, 0x52, 0x9b, 0x89,
	0xd4, 0x80, 0xe3, 0x58, 0xf1, 0xd1, 0x3b, 0x00, 0xb3, 0xc0, 0x21, 0xa1, 0x45, 0x83, 0x30, 0xea,
	0x34, 0x6e, 0x95, 0xef, 0x35, 0x71, 0x06, 0x41, 0x3a, 0x20, 0x4a, 0xc2, 0x59, 0xd4, 0xf7, 0x9d,
	0x41, 0xe0, 0x3b, 0xae, 0x58, 0x74, 0x93, 0xab, 0x71, 0x05, 0x07, 0xf5, 0xa0, 0x25, 0x8e, 0x6a,
	0x14, 0x78, 0xae, 0xbd, 0xe8, 0x00, 0x97, 0xcc, 0x61, 0xdd, 0x3f, 0x94, 0xa1, 0xa1, 0xf4, 0x87,
	0x3a, 0x50, 0xbf, 0x20, 0x61, 0xc4, 0x8c, 0x8d, 0x1d, 0xce, 0x3a, 0x56, 0x24, 0xda, 0x85, 0x96,
	0x8a, 0x25, 0x93, 0xc5, 0x9c, 0xf0, 0x33, 0xda, 0xd8, 0x79, 0x67, 0xe9, 0x08, 0xf4, 0x41, 0x46,
	0x0a, 0xe7, 0xc6, 0xa0, 0x87, 0x50, 0x3b, 0x0b, 0x98, 0x5b, 0xf2, 0x03, 0xdc, 0xd8, 0xe9, 0x2c,
	0x8f, 0xde, 0xe3, 0x7c, 0x2c, 0xe5, 0xd0, 0x0e, 0xd4, 0xc8, 0xe5, 0xdc, 0x0d, 0x17, 0xf2, 0x1c,
	0xbb, 0xba, 0x88, 0x55, 0xba, 0x8a, 0x55, 0xfa, 0x44, 0xc5, 0x2a, 0x2c, 0x25, 0x99, 0x92, 0x2c,
	0x6e, 0xc4, 0xc4, 0x19, 0xc4, 0x61, 0x48, 0x7c, 0xdb, 0x25, 0xe2, 0x64, 0x9b, 0x78, 0x05, 0x07,
	0xdd, 0x83, 0xcd, 0x79, 0xe8, 0xda, 0xae, 0x3f, 0x95, 0xe0, 0x82, 0xbb, 0x65, 0x13, 0x17, 0x61,
	0xd4, 0x85, 0x86, 0x67, 0xf9, 0xd3, 0xd8, 0x9a, 0x12, 0xee, 0x8b, 0x4d, 0x9c, 0xd0, 0xec, 0xad,
	0x24, 0xb2, 0xc3, 0xe0, 0x39, 0x5b, 0x50, 0x10, 0xd3, 0xfd, 0x20, 0xe6, 0x47, 0xc8, 0x94, 0xb8,
	0x82, 0xd3, 0x1b, 0x41, 0x2b, 0xab, 0x29, 0xb4, 0x05, 0xeb, 0xa3, 0xfd, 0xaf, 0xc6, 0xe6, 0xa0,
	0x7f, 0x70, 0xf2, 0xf8, 0xe8, 0xc8, 0x68, 0x5f, 0x41, 0x6d, 0x68, 0x19, 0xe6, 0x63, 0x73, 0xa2,
	0x10, 0x0d, 0xad, 0x41, 0x7d, 0x3c, 0xc4, 0x5f, 0x98, 0x83, 0x61, 0xbb, 0x84, 0x36, 0x00, 0x06,
	0xf8, 0xe8, 0x4b, 0xe3, 0x64, 0xef, 0xf8, 0xd0, 0x68, 0x97, 0x7b, 0x77, 0xa1, 0x26, 0xb4, 0x87,
	0x36, 0x61, 0x6d, 0xcf, 0xfc, 0xef, 0xa1, 0x71, 0x32, 0xc2, 0x4c, 0xf4, 0x0a, 0x1b, 0xd7, 0x3f,
	0x1e, 0x4c, 0xcc, 0xa3, 0xc3, 0xb6, 0xd6, 0xfd, 0x4d, 0x0d, 0x2a, 0xcc, 0x0b, 0xd0, 0x36, 0x54,
	0xa9, 0x4b, 0x3d, 0x22, 0xfd, 0x50, 0x10, 0xe8, 0x16, 0xac, 0x39, 0x6c, 0xbd, 0x2e, 0x37, 0x71,
	0x7e, 0xce, 0x4d, 0x9c, 0x85, 0xd0, 0x5d, 0xd8, 0x98, 0x87, 0x81, 0x4d, 0xa2, 0xc8, 0xf5, 0xa7,
	0x6c, 0x53, 0xfc, 0x38, 0x9b, 0xb8, 0x80, 0xb2, 0xf9, 0x99, 0x06, 0x09, 0x3f, 0xbb, 0x0a, 0x16,
	0x04, 0x73, 0x7e, 0x3f, 0x3a, 0x7b, 0xce, 0x63, 0x66, 0x03, 0xf3, 0x67, 0x86, 0x51, 0x6b, 0x2a,
	0xbc, 0xa8, 0x89, 0xf9, 0x33, 0x7a, 0x1f, 0x6a, 0xee, 0xcc, 0x9a, 0x12, 0xe5, 0x35, 0x57, 0x73,
	0x2e, 0xac, 0x9b, 0x8c, 0x87, 0xa5, 0x08, 0x73, 0x1c, 0xdb, 0xa2, 0x64, 0x1a, 0x84, 0xec, 0xac,
	0xa5, 0xe3, 0xa4, 0x08, 0x5b, 0xca, 0x34, 0xb4, 0x66, 0xc2, 0x57, 0x4a, 0x58, 0x10, 0xe8, 0x6d,
	0x68, 0xda, 0xca, 0x59, 0xa4, 0x6f, 0xa4, 0x00, 0xd2, 0xa1, 0x1e, 0xc8, 0xb0, 0xb0, 0xc6, 0x57,
	0xb0, 0x9d, 0x5f, 0x81, 0x8c, 0x09, 0x4a, 0x08, 0xbd, 0x0b, 0x95, 0xe8, 0x59, 0x1c, 0x75, 0x5a,
	0x32, 0xab, 0xe4, 0x84, 0xc7, 0xcf, 0x62, 0xcc, 0xd9, 0xdd, 0x9f, 0x69, 0x50, 0x13, 0x43, 0xb9,
	0x2a, 0xac, 0x99, 0xd2, 0x3f, 0x7f, 0x7e, 0x0d, 0xf5, 0x3f, 0x82, 0xc6, 0x85, 0x15, 0xba, 0x96,
	0x4f, 0xa3, 0x4e, 0x99, 0xbf, 0xeb, 0xed, 0x55, 0x0b, 0xd3, 0xbf, 0x10, 0x42, 0x38, 0x91, 0xee,
	0xee, 0x43, 0x5d, 0x82, 0x2b, 0x5f, 0xfd, 0x1e, 0x54, 0xb9, 0x3a, 0x65, 0xfc, 0x5d, 0xa9, 0x70,
	0x21, 0xd1, 0xfd, 0x7f, 0x0d, 0xca, 0xe3, 0x67, 0x31, 0x0b, 0x30, 0x72, 0xf6, 0x41, 0x30, 0x3b,
	0x0d, 0x78, 0x05, 0xb0, 0x8e, 0x73, 0x18, 0xd3, 0xf2, 0x3c, 0x0c, 0x9c, 0xd8, 0xa6, 0x32, 0xb4,
	0x37, 0x71, 0x0a, 0x30, 0x6e, 0x14, 0x87, 0xf6, 0xb9, 0x15, 0x4e, 0x85, 0x1d, 0x95, 0x71, 0x0a,
	0x30, 0x8f, 0xfb, 0x3a, 0xb6, 0x7c, 0xea, 0x52, 0x11, 0x01, 0xca, 0x38, 0xa1, 0xbb, 0xdf, 0x68,
	0x50, 0xe5, 0x8b, 0x62, 0x52, 0x67, 0xae, 0x47, 0x32, 0x1b, 0x4a, 0x68, 0xc6, 0x0b, 0x42, 0x77,
	0xea, 0xfa, 0x96, 0x27, 0x5f, 0x9e, 0xd0, 0xcc, 0x2a, 0xbc, 0xe4, 0xbd, 0x4d, 0x2c, 0x08, 0x74,
	0x1d, 0x6a, 0x33, 0xe2, 0xb8, 0xb1, 0xc8, 0x1d, 0x4d, 0x2c, 0x29, 0x26, 0x1d, 0xcd, 0x2c, 0xcf,
	0xe3, 0x96, 0xdb, 0xc4, 0x82, 0xe0, 0xa6, 0xeb, 0xfa, 0x2a, 0x64, 0xf0, 0xe7, 0xee, 0x8f, 0x6a,
	0xb0, 0x91, 0xcf, 0x1c, 0x2b, 0xf5, 0xfd, 0x08, 0x2a, 0x34, 0x0d, 0xa5, 0x77, 0x5e, 0x90, 0x74,
	0x12, 0x92, 0x07, 0x54, 0x3e, 0x02, 0xdd, 0x85, 0x7a, 0x48, 0xa6, 0xdc, 0x34, 0x99, 0x05, 0x6c,
	0xec, 0xb4, 0x58, 0x2a, 0x61, 0x75, 0xdd, 0x20, 0x70, 0x08, 0x56, 0x4c, 0xf4, 0x04, 0xd6, 0x55,
	0xc6, 0xc2, 0xb1, 0x47, 0x22, 0x19, 0x45, 0xdf, 0x7d, 0xd5, 0xab, 0xb8, 0x30, 0xce, 0x8f, 0x45,
	0x1f, 0x43, 0x23, 0x22, 0xe1, 0x85, 0x6b, 0x13, 0x95, 0x27, 0x6f, 0xbe, 0x70, 0x1e, 0x21, 0x87,
	0x93, 0x01, 0x5d, 0x0b, 0xea, 0x12, 0x5c, 0xa9, 0x8a, 0x24, 0x54, 0x94, 0xb2, 0xa1, 0xe2, 0x01,
	0x6c, 0x91, 0x88, 0xba, 0x33, 0x8b, 0x12, 0xc7, 0x20, 0x9e, 0x7b, 0x41, 0xc2, 0x85, 0x3c, 0xab,
	0x65, 0x46, 0xf7, 0xbb, 0x65, 0x58, 0xcf, 0x6d, 0x00, 0x7d, 0x06, 0x8d, 0x30, 0xf6, 0x08, 0xcf,
	0x57, 0x1a, 0x57, 0xb2, 0xfe, 0x5a, 0x3b, 0xd7, 0xb1, 0x1c, 0x85, 0x93, 0xf1, 0xe8, 0x53, 0xa8,
	0x86, 0x5c, 0x85, 0x25, 0xbe, 0xf5, 0xfb, 0xaf, 0x3f, 0x11, 0x16, 0x03, 0xbb, 0x13, 0xa8, 0x30,
	0x92, 0x59, 0xe4, 0xcc, 0xf5, 0xb1, 0xe5, 0x4f, 0x89, 0x4c, 0xb2, 0x09, 0xcd, 0x79, 0xd6, 0xa5,
	0xe0, 0x95, 0x24, 0x4f, 0xd2, 0xa9, 0x8e, 0xca, 0x19, 0x1d, 0xf5, 0xbe, 0xaf, 0x41, 0x43, 0x2d,
	0x17, 0x5d, 0x83, 0xad, 0xcf, 0x8f, 0xfb, 0x87, 0x13, 0x73, 0xf2, 0xd5, 0x89, 0x61, 0x8e, 0x07,
	0x47, 0xc7, 0x87, 0x93, 0xf6, 0x15, 0xf4, 0x2f, 0x70, 0x63, 0xef, 0xa0, 0x3f, 0x39, 0xd9, 0x1b,
	0x0e, 0x4f, 0x12, 0x3e, 0xee, 0x1f, 0x3e, 0x1e, 0xb6, 0x35, 0xf4, 0x16, 0x5c, 0x4b, 0x98, 0x5f,
	0x0e, 0xcd, 0xc7, 0xfb, 0x13, 0xc9, 0x2a, 0x31, 0xd6, 0xe0, 0xe8, 0xe9, 0xae, 0x79, 0x38, 0x34,
	0x4e, 0xc6, 0xfb, 0xe6, 0x68, 0x64, 0x1e, 0x3e, 0x3e, 0xe9, 0x1b, 0x46, 0xbb, 0x8c, 0xde, 0x81,
	0xee, 0x32, 0x6b, 0x7c, 0xbc, 0x3b, 0xc1, 0xfd, 0xc1, 0xa4, 0x5d, 0xe9, 0x7d, 0x04, 0xad, 0xac,
	0xdd, 0xb2, 0x5c, 0x76, 0x70, 0xc4, 0x72, 0xdb, 0xc8, 0x1c, 0x3c, 0x39, 0x1e, 0xb5, 0xaf, 0x14,
	0x93, 0x94, 0xd6, 0xfd, 0x9e, 0x06, 0xe5, 0x89, 0x75, 0xc9, 0x6a, 0x10, 0x6a, 0x5d, 0x26, 0x87,
	0xd6, 0xc4, 0x8a, 0x44, 0x0f, 0x00, 0xa8, 0x75, 0x89, 0xa5, 0xe5, 0x97, 0x56, 0x58, 0x7e, 0x86,
	0xcf, 0x22, 0x29, 0xb5, 0x2e, 0xd5, 0x2a, 0xb8, 0xd6, 0x1a, 0x38, 0x0b, 0xb1, 0xac, 0x31, 0x27,
	0xa1, 0x4d, 0x7c, 0xca, 0xa2, 0x5e, 0x85, 0xa7, 0x86, 0x0c, 0xc2, 0x43, 0xb5, 0x28, 0xd1, 0x5e,
	0x90, 0x2b, 0xb7, 0xa1, 0x72, 0x6e, 0x45, 0xe7, 0x22, 0xb0, 0xec, 0x5f, 0xc1, 0x9c, 0x42, 0x77,
	0xa0, 0xe5, 0xb8, 0x11, 0x6f, 0xb4, 0xd8, 0xa2, 0x84, 0xc5, 0xee, 0x5f, 0xc1, 0x39, 0x14, 0xdd,
	0x87, 0x4d, 0xf9, 0x2a, 0x43, 0xc2, 0x3c, 0xb0, 0x94, 0xf6, 0x35, 0x5c, 0x64, 0xa0, 0xbb, 0xb0,
	0xce, 0x4f, 0x3b, 0x91, 0x64, 0xd1, 0xa6, 0xb2, 0xaf, 0xe1, 0x3c, 0xbc, 0x5b, 0x83, 0x0a, 0x6b,
	0xec, 0x76, 0x01, 0x1a, 0xea, 0x5d, 0xbd, 0x5f, 0x35, 0xa1, 0x2a, 0xda, 0xaa, 0x3b, 0xb0, 0x2e,
	0x2a, 0xbf, 0xbe, 0xe3, 0x84, 0x24, 0x8a, 0xe4, 0x5e, 0xf2, 0x20, 0x0b, 0xc8, 0x02, 0xd8, 0x23,
	0xca, 0x1d, 0x53, 0x00, 0xbd, 0x0f, 0x8d, 0x28, 0xab, 0x51, 0x56, 0xcd, 0xf2, 0xd9, 0x53, 0xc3,
	0x4f, 0x04, 0xd0, 0xbf, 0x42, 0x9d, 0x37, 0x40, 0xa6, 0x21, 0x03, 0x0f, 0x2f, 0xe9, 0x15, 0x86,
	0x1e, 0x41, 0x33, 0xe9, 0x34, 0x65, 0x0b, 0xf5, 0xb2, 0xfa, 0x2e, 0x15, 0x46, 0xb7, 0xa1, 0xca,
	0x2a, 0x78, 0x55, 0x76, 0xaf, 0xc9, 0x25, 0xf0, 0xda, 0x5e, 0x70, 0xd0, 0x3d, 0xa8, 0xcf, 0xad,
	0x05, 0x6f, 0xf3, 0x44, 0xdb, 0xb4, 0x21, 0x85, 0x46, 0x02, 0xc5, 0x8a, 0xcd, 0xac, 0x20, 0xb4,
	0x98, 0x2b, 0x3f, 0x21, 0x0b, 0x51, 0x3b, 0xb4, 0x70, 0x06, 0x41, 0x3b, 0xb0, 0x6d, 0x79, 0x94,
	0x84, 0xbe, 0x45, 0x09, 0x2b, 0xd9, 0x2c, 0x9b, 0x9a, 0xfe, 0x59, 0x20, 0xcb, 0xee, 0x95, 0xbc,
	0xee, 0x2f, 0x35, 0x68, 0x24, 0x66, 0x76, 0x1d, 0x6a, 0x4c, 0x25, 0x93, 0x40, 0x2a, 0x5c, 0x52,
	0xcc, 0xd0, 0x2d, 0x79, 0x12, 0x22, 0x33, 0x29, 0x92, 0x85, 0x48, 0x9b, 0xa5, 0x3c, 0x11, 0xeb,
	0xf8, 0x33, 0x4f, 0x3f, 0xd4, 0xa2, 0x44, 0x66, 0x25, 0x41, 0x70, 0x13, 0x0e, 0x22, 0x6a, 0x79,
	0xdc, 0xd2, 0x44, 0x66, 0xca, 0x20, 0x2c, 0x53, 0xc8, 0x8e, 0x9f, 0xdb, 0xcc, 0x52, 0xa6, 0x90,
	0x4c, 0x96, 0xc8, 0xe5, 0xcb, 0x0f, 0x03, 0xca, 0x6b, 0x2e, 0xde, 0x29, 0x64, 0xb1, 0xee, 0x6f,
	0x4b, 0xb2, 0x70, 0xbc, 0x05, 0x6b, 0x9e, 0x88, 0x7e, 0xfb, 0xcc, 0xfa, 0xc5, 0xae, 0xb2, 0x50,
	0x2e, 0x6f, 0xcb, 0x38, 0xa6, 0x68, 0xf4, 0x20, 0xad, 0xab, 0x44, 0xf9, 0x82, 0x32, 0xc7, 0xb7,
	0x54, 0x55, 0xed, 0xc2, 0x46, 0xbe, 0xe9, 0x4a, 0x3a, 0x81, 0xcc, 0xa0, 0x42, 0x9b, 0x56, 0x18,
	0xc1, 0xd4, 0x39, 0x23, 0xb3, 0x40, 0xaa, 0x87, 0x3f, 0xb3, 0x3d, 0x88, 0xae, 0x8b, 0xe9, 0x41,
	0x55, 0x9e, 0x59, 0xa8, 0xbb, 0xf3, 0xd2, 0x3a, 0x6d, 0x1b, 0xaa, 0x17, 0x96, 0x17, 0x13, 0x79,
	0x74, 0x82, 0xe8, 0xfe, 0xd7, 0x6b, 0x25, 0xfe, 0x0e, 0xd4, 0x65, 0x62, 0x54, 0x07, 0x2f, 0xc9,
	0xee, 0x0f, 0x4b, 0x50, 0x97, 0x06, 0x8a, 0x3e, 0x60, 0x75, 0x08, 0x3d, 0x0f, 0x1c, 0x99, 0xbb,
	0xae, 0xe5, 0x0d, 0x98, 0xf5, 0x4c, 0xe7, 0x81, 0x83, 0xa5, 0x10, 0xf3, 0xdb, 0xa4, 0x53, 0x54,
	0x65, 0x56, 0x02, 0x30, 0x1b, 0xb4, 0x66, 0x3c, 0x74, 0x88, 0xec, 0x21, 0x29, 0x5e, 0x02, 0x9f,
	0x5b, 0xae, 0xcf, 0xc2, 0x86, 0xb4, 0xac, 0x14, 0xc8, 0x5a, 0x68, 0x35, 0x6f, 0xa1, 0xbc, 0xb3,
	0x74, 0x08, 0x99, 0x8d, 0x79, 0x5d, 0x2a, 0xcb, 0x9f, 0x1c, 0xc6, 0x64, 0x92, 0x05, 0x3c, 0x21,
	0x0b, 0x6e, 0x53, 0x2d, 0x9c, 0xc3, 0x7a, 0x8f, 0xa0, 0x26, 0xf6, 0x81, 0xae, 0xc2, 0x66, 0xdf,
	0x30, 0xf0, 0x70, 0x3c, 0x3e, 0xc1, 0xc3, 0xcf, 0x8f, 0x87, 0x63, 0x96, 0xb9, 0x00, 0x6a, 0x86,
	0x89, 0x87, 0x83, 0x49, 0x5b, 0x43, 0xeb, 0xd0, 0x7c, 0x7a, 0x64, 0x0c, 0x71, 0x7f, 0x32, 0x34,
	0xda, 0xa5, 0xde, 0x5f, 0x34, 0xd8, 0x5a, 0xbe, 0xec, 0xe9, 0x40, 0x3d, 0x60, 0xa0, 0x69, 0xa8,
	0xe4, 0x21, 0xc9, 0x7c, 0xb4, 0x29, 0xbd, 0x49, 0xb4, 0x61, 0xfd, 0x8e, 0xd0, 0xb9, 0x0a, 0x9c,
	0xaa, 0xdf, 0xc9, 0xa1, 0xac, 0x91, 0x0c, 0xc9, 0xd7, 0x31, 0x89, 0x28, 0x71, 0xfa, 0x42, 0xd9,
	0xa2, 0xf3, 0x29, 0xc2, 0xe8, 0x3f, 0xa1, 0x2d, 0x02, 0xcc, 0x38, 0xbd, 0x3e, 0x11, 0x25, 0x55,
	0x5b, 0xc7, 0x79, 0x06, 0x5e, 0x92, 0xec, 0x7d, 0x47, 0x83, 0x35, 0x71, 0x69, 0x46, 0xfe, 0x97,
	0xd8, 0xf4, 0x1f, 0xb2, 0x67, 0xd6, 0xcc, 0xb8, 0x53, 0xe5, 0xa1, 0x5b, 0xfa, 0xae, 0x4b, 0xed,
	0xc0, 0xf5, 0xd3, 0x65, 0x71, 0x76, 0xef, 0xf7, 0x1a, 0x6c, 0x16, 0x16, 0x8c, 0x3e, 0xcd, 0x5c,
	0xd4, 0x68, 0xfc, 0x9d, 0x77, 0x8a, 0x9b, 0xd2, 0x27, 0xa1, 0xe5, 0x47, 0x96, 0xcd, 0x8e, 0x6c,
	0xc5, 0xdd, 0x0d, 0xeb, 0x09, 0x94, 0x28, 0x5f, 0x76, 0x0b, 0xa7, 0x40, 0x77, 0x01, 0x57, 0x57,
	0x0c, 0xcf, 0x04, 0xa5, 0x71, 0x7a, 0xb7, 0x94, 0x85, 0x78, 0x66, 0x53, 0x61, 0x5d, 0x4d, 0x9b,
	0x00, 0x4b, 0xd6, 0x5a, 0x5e, 0x61, 0xad, 0x23, 0x68, 0x17, 0x15, 0xc1, 0x22, 0xb0, 0xeb, 0xcf,
	0x63, 0x6a, 0xfa, 0x0e, 0xb9, 0x94, 0x05, 0x5d, 0x06, 0x79, 0xf9, 0x66, 0x7a, 0x3f, 0xae, 0x42,
	0x7b, 0xe9, 0x9a, 0x31, 0x39, 0x50, 0x27, 0x7f, 0xa0, 0x4e, 0x72, 0x73, 0x56, 0xca, 0xdc, 0x9c,
	0xe5, 0x0e, 0xb9, 0xfc, 0x26, 0x87, 0x7c, 0x08, 0xed, 0xf9, 0xf9, 0x22, 0x72, 0x6d, 0xcb, 0x4b,
	0xca, 0x6b, 0x71, 0x27, 0xda, 0x5b, 0xba, 0x13, 0xd5, 0x47, 0x05, 0x49, 0xbc, 0x34, 0x16, 0x3d,
	0x81, 0x4d, 0xc7, 0x9d, 0xba, 0x34, 0x33, 0x9d, 0xb0, 0xea, 0xdb, 0xcb, 0xd3, 0x19, 0x79, 0x41,
	0x5c, 0x1c, 0x89, 0x1e, 0x42, 0x6d, 0x6e, 0x2d, 0x82, 0x98, 0xca, 0x4b, 0xd2, 0xce, 0x8a, 0x25,
	0x71, 0x3e, 0x96, 0x72, 0xe8, 0x3f, 0x60, 0xb3, 0xe0, 0x2b, 0x32, 0xf5, 0x2f, 0x3b, 0x55, 0x51,
	0x90, 0x87, 0xe9, 0x80, 0x8a, 0x0b, 0x52, 0x16, 0xa6, 0x03, 0x4a, 0xba, 0x13, 0x68, 0x17, 0x37,
	0xcd, 0x43, 0x37, 0x0b, 0xf0, 0x24, 0x54, 0x47, 0x23, 0x49, 0x16, 0x25, 0x68, 0x68, 0xd9, 0xcf,
	0x5c, 0x7f, 0x7a, 0x18, 0xcf, 0x4e, 0x89, 0x0a, 0xc2, 0x05, 0xb4, 0xfb, 0x09, 0x6c, 0x16, 0xf6,
	0x8e, 0xda, 0x50, 0x8e, 0x43, 0x4f, 0x4e, 0xc8, 0x1e, 0x59, 0xfe, 0x9c, 0x5b, 0x51, 0xf4, 0x3c,
	0x08, 0x1d, 0xd5, 0xb5, 0x2a, 0x9a, 0xf5, 0xde, 0x35, 0xb1, 0xf3, 0xc4, 0x4b, 0xb5, 0x97, 0x7a,
	0x29, 0x2b, 0xfc, 0x84, 0x8a, 0xfa, 0xb9, 0x72, 0x23, 0x0f, 0xa2, 0xfb, 0xd0, 0x16, 0xc0, 0x1e,
	0x21, 0x23, 0x12, 0xee, 0x2e, 0xa8, 0x6a, 0x35, 0x96, 0xf0, 0xde, 0x4f, 0x34, 0xd8, 0x2c, 0x5e,
	0x6b, 0xbf, 0xd8, 0x6a, 0xbf, 0x7d, 0x18, 0xfa, 0x08, 0x40, 0xbc, 0x7b, 0xfc, 0xd2, 0x60, 0x94,
	0x11, 0x42, 0xb7, 0xa1, 0x2e, 0x0e, 0x37, 0x92, 0xb6, 0x5c, 0x97, 0xa7, 0x8f, 0x15, 0xde, 0xfb,
	0x45, 0x05, 0x6a, 0x02, 0x43, 0x3b, 0xaa, 0xf8, 0x33, 0xd2, 0x70, 0x85, 0xe4, 0x00, 0xf9, 0xc3,
	0x38, 0x38, 0x23, 0xf5, 0x8a, 0xf0, 0xf4, 0xc7, 0x32, 0x00, 0xce, 0x09, 0xa7, 0x41, 0x47, 0x2b,
	0x06, 0x9d, 0x57, 0xde, 0x7a, 0xeb, 0xd0, 0x14, 0xcf, 0x63, 0x57, 0x15, 0xdc, 0xcb, 0xd6, 0x9c,
	0x8a, 0xbc, 0xaa, 0xe4, 0x7e, 0x1b, 0x9a, 0xfc, 0xf1, 0x90, 0x95, 0x24, 0x22, 0xa5, 0xa7, 0x00,
	0xb3, 0x3a, 0x4e, 0xb0, 0x77, 0xd5, 0xf8, 0x52, 0x13, 0x3a, 0x17, 0x1e, 0x19, 0xbf, 0x98, 0xcc,
	0x99, 0x4c, 0xee, 0x9c, 0x1b, 0x6f, 0x72, 0xce, 0xcc, 0x76, 0x2e, 0x48, 0x68, 0x79, 0x1e, 0x2f,
	0xab, 0xd7, 0xb1, 0x22, 0x19, 0xe7, 0xeb, 0xd8, 0xf2, 0x58, 0x21, 0x09, 0x82, 0x23, 0xc9, 0xe2,
	0x4d, 0xd9, 0x1a, 0xe7, 0xe6, 0x6e, 0xca, 0xee, 0xc0, 0xba, 0x23, 0x7d, 0x6c, 0x3c, 0x27, 0xc4,
	0xe9, 0xb4, 0xb8, 0x4c, 0x1e, 0x64, 0x69, 0xdb, 0x8e, 0x23, 0x1a, 0xcc, 0x48, 0x28, 0xaf, 0x28,
	0x3a, 0xeb, 0x5c, 0xae, 0x08, 0xb3, 0x22, 0x2a, 0x24, 0x17, 0x2e, 0x79, 0xde, 0xd9, 0x10, 0x85,
	0xbc, 0xa0, 0x7a, 0xbf, 0xd6, 0xa0, 0x2e, 0xbf, 0xa8, 0xe4, 0x75, 0xa0, 0xbd, 0x89, 0x0e, 0xb6,
	0xa1, 0x6a, 0x7b, 0x96, 0x3b, 0x53, 0x15, 0x25, 0x27, 0x96, 0x7d, 0xb7, 0xbc, 0xca, 0x77, 0xff,
	0x0d, 0x9a, 0x41, 0x4c, 0xe7, 0x81, 0xeb, 0x53, 0x65, 0xf6, 0x4d, 0xfd, 0x48, 0x22, 0x38, 0xe5,
	0x21, 0x1d, 0x50, 0x44, 0x42, 0xd7, 0xf2, 0xdc, 0xff, 0x23, 0x8e, 0xba, 0x80, 0xe6, 0x96, 0xd0,
	0xc2, 0x2b, 0x38, 0xbd, 0x3f, 0x55, 0x60, 0x6b, 0xe9, 0x73, 0xd3, 0xdf, 0xb1, 0xc9, 0x4c, 0x90,
	0x28, 0xe5, 0x83, 0x04, 0xeb, 0x64, 0xc2, 0x60, 0x1e, 0x44, 0xc4, 0xd9, 0x55, 0x9d, 0x4f, 0x06,
	0xe1, 0x6d, 0x5a, 0xfa, 0x29, 0x4c, 0x94, 0xaa, 0x19, 0x04, 0x7d, 0x94, 0xe4, 0x0b, 0xd1, 0x4a,
	0xbe, 0xb5, 0xfc, 0x99, 0xac, 0x98, 0x30, 0x1e, 0xc2, 0xd5, 0xc4, 0x7e, 0x13, 0x9f, 0x12, 0xbd,
	0x40, 0x0b, 0xaf, 0x62, 0x75, 0x7f, 0x57, 0x7a, 0xd3, 0xd8, 0x7b, 0x1b, 0x6a, 0xbc, 0x18, 0x50,
	0x17, 0x47, 0x99, 0x63, 0x91, 0x0c, 0xb4, 0x0b, 0x6b, 0xe2, 0x3b, 0x61, 0x4c, 0xe7, 0x31, 0x95,
	0x5e, 0x7e, 0xeb, 0x85, 0xcb, 0xd7, 0x85, 0x1c, 0xce, 0x0e, 0x42, 0x06, 0xb4, 0xe4, 0x37, 0x4b,
	0x31, 0x49, 0xe5, 0x35, 0x27, 0xc9, 0x8d, 0x42, 0x9f, 0xc1, 0x66, 0xb2, 0x6b, 0x39, 0x51, 0xf5,
	0x35, 0x27, 0x2a, 0x0e, 0xec, 0x3e, 0x82, 0x9a, 0x9c, 0x95, 0xf5, 0xbf, 0xa2, 0x4b, 0x50, 0xfd,
	0xaf, 0xe8, 0x0f, 0xd2, 0x9e, 0xa4, 0x94, 0xed, 0x49, 0x7a, 0x6e, 0x62, 0x72, 0x99, 0x8f, 0x91,
	0xdf, 0xde, 0xe4, 0xba, 0xd0, 0xb0, 0x3d, 0x69, 0x56, 0x32, 0x97, 0x2a, 0xba, 0xf7, 0x19, 0x34,
	0xd4, 0x71, 0xb0, 0x12, 0xe0, 0x3c, 0x6d, 0x67, 0xc5, 0x55, 0xce, 0x36, 0x54, 0x5d, 0x5e, 0xd7,
	0x89, 0x26, 0x56, 0x10, 0x69, 0xef, 0x27, 0x6f, 0xe2, 0x38, 0xd1, 0xfb, 0x41, 0x09, 0x6a, 0xe2,
	0x03, 0xe9, 0x3f, 0xb1, 0x22, 0x47, 0x43, 0xd8, 0x12, 0xb7, 0x35, 0x99, 0x1a, 0x59, 0x5a, 0xc3,
	0x0d, 0xf9, 0xfd, 0x36, 0x5b, 0x7d, 0x9b, 0xfe, 0x59, 0x80, 0x97, 0x47, 0xac, 0x6a, 0x99, 0xbb,
	0x1f, 0xc3, 0x66, 0x61, 0x24, 0xbf, 0xfd, 0xbe, 0x74, 0x55, 0xc2, 0xe7, 0xcf, 0xf9, 0xce, 0x38,
	0xd1, 0xce, 0xcf, 0x35, 0x28, 0x99, 0x06, 0x3b, 0xf3, 0x39, 0xc9, 0x28, 0x46, 0x52, 0x2c, 0xbd,
	0x9c, 0x7a, 0x81, 0xfd, 0x8c, 0xf7, 0x9e, 0xc9, 0x77, 0x82, 0x1c, 0x86, 0xde, 0x85, 0xfa, 0x3c,
	0x3e, 0x7d, 0x46, 0x16, 0x91, 0xf4, 0x91, 0x35, 0xdd, 0x34, 0xf4, 0x91, 0x80, 0xb0, 0xe2, 0xb1,
	0x40, 0x71, 0x9a, 0xe8, 0x86, 0x6f, 0xbd, 0x85, 0x33, 0x48, 0xf7, 0x13, 0xa8, 0xcb, 0x31, 0xcc,
	0x34, 0x5c, 0x87, 0x88, 0x6b, 0x0a, 0x91, 0x9b, 0x13, 0x9a, 0x9d, 0xa1, 0x1c, 0x24, 0x73, 0xbc,
	0x22, 0x7b, 0x7f, 0xd5, 0xa0, 0x99, 0x56, 0x8e, 0x0f, 0x58, 0x33, 0x2f, 0xd4, 0x2c, 0xfa, 0x74,
	0x94, 0x7e, 0x01, 0xd7, 0xc7, 0x82, 0x83, 0x95, 0x08, 0xab, 0x12, 0x93, 0x52, 0x81, 0x55, 0x52,
	0x91, 0x9c, 0xbc, 0x80, 0xf6, 0xbe, 0xd1, 0xa0, 0x2e, 0x07, 0xa3, 0x35, 0xa8, 0x1f, 0x98, 0xe3,
	0x89, 0x79, 0xf8, 0xb8, 0x7d, 0x05, 0x35, 0xa1, 0x7a, 0x84, 0x8d, 0x21, 0x6e, 0x6b, 0xe8, 0x3a,
	0x20, 0xfe, 0x78, 0x32, 0x38, 0x3a, 0xdc, 0x33, 0xf1, 0xd3, 0x3e, 0xff, 0xc0, 0x57, 0x42, 0xd7,
	0x60, 0x4b, 0xe0, 0x7b, 0xc7, 0x07, 0x7b, 0xe6, 0xc1, 0xc1, 0xd3, 0xe1, 0xe1, 0xa4, 0x5d, 0x46,
	0xdb, 0xd0, 0x56, 0xe2, 0x4f, 0x47, 0x07, 0x43, 0x2e, 0x5c, 0x61, 0x93, 0x1b, 0xe6, 0x78, 0x74,
	0x3c, 0x19, 0xb6, 0xab, 0x6c, 0x46, 0x49, 0x9c, 0xe0, 0xe1, 0xf8, 0xe8, 0xe0, 0x98, 0x0b, 0xd5,
	0x58, 0x1b, 0x8e, 0x87, 0xfc, 0x33, 0x63, 0xbd, 0x47, 0x60, 0x9d, 0xed, 0x8f, 0x38, 0xea, 0x6b,
	0x7e, 0x0f, 0xea, 0xb2, 0xcb, 0x92, 0x7e, 0x99, 0xfe, 0x01, 0x44, 0x31, 0x12, 0xdf, 0x2a, 0x65,
	0x7c, 0x2b, 0x57, 0x46, 0x95, 0x0b, 0x65, 0xd4, 0x6e, 0xe5, 0x7f, 0x4a, 0xf3, 0xd3, 0xd3, 0x1a,
	0xf7, 0x89, 0x7f, 0xff, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xae, 0x7f, 0xf8, 0xc8, 0x22,
	0x00, 0x00,
}
// Code generated by protoc-gen-go.
// source: contracts.proto
// DO NOT EDIT!

package pb

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/timestamp"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

type Listing_Metadata_ContractType int32

const (
	Listing_Metadata_PHYSICAL_GOOD Listing_Metadata_ContractType = 0
	Listing_Metadata_DIGITAL_GOOD  Listing_Metadata_ContractType = 1
	Listing_Metadata_SERVICE       Listing_Metadata_ContractType = 2
	Listing_Metadata_CROWD_FUND    Listing_Metadata_ContractType = 3
)

var Listing_Metadata_ContractType_name = map[int32]string{
	0: "PHYSICAL_GOOD",
	1: "DIGITAL_GOOD",
	2: "SERVICE",
	3: "CROWD_FUND",
}
var Listing_Metadata_ContractType_value = map[string]int32{
	"PHYSICAL_GOOD": 0,
	"DIGITAL_GOOD":  1,
	"SERVICE":       2,
	"CROWD_FUND":    3,
}

func (x Listing_Metadata_ContractType) String() string {
	return proto.EnumName(Listing_Metadata_ContractType_name, int32(x))
}
func (Listing_Metadata_ContractType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 0, 0}
}

type Listing_Metadata_Format int32

const (
	Listing_Metadata_FIXED_PRICE Listing_Metadata_Format = 0
	Listing_Metadata_AUCTION     Listing_Metadata_Format = 1
)

var Listing_Metadata_Format_name = map[int32]string{
	0: "FIXED_PRICE",
	1: "AUCTION",
}
var Listing_Metadata_Format_value = map[string]int32{
	"FIXED_PRICE": 0,
	"AUCTION":     1,
}

func (x Listing_Metadata_Format) String() string {
	return proto.EnumName(Listing_Metadata_Format_name, int32(x))
}
func (Listing_Metadata_Format) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 0, 1}
}

type Listing_ShippingOption_ShippingType int32

const (
	Listing_ShippingOption_LOCAL_PICKUP Listing_ShippingOption_ShippingType = 0
	Listing_ShippingOption_FIXED_PRICE  Listing_ShippingOption_ShippingType = 1
)

var Listing_ShippingOption_ShippingType_name = map[int32]string{
	0: "LOCAL_PICKUP",
	1: "FIXED_PRICE",
}
var Listing_ShippingOption_ShippingType_value = map[string]int32{
	"LOCAL_PICKUP": 0,
	"FIXED_PRICE":  1,
}

func (x Listing_ShippingOption_ShippingType) String() string {
	return proto.EnumName(Listing_ShippingOption_ShippingType_name, int32(x))
}
func (Listing_ShippingOption_ShippingType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 0}
}

type Listing_ShippingOption_ShippingRules_RuleType int32

const (
	Listing_ShippingOption_ShippingRules_QUANTITY_DISCOUNT          Listing_ShippingOption_ShippingRules_RuleType = 0
	Listing_ShippingOption_ShippingRules_FLAT_FEE_QUANTITY_RANGE    Listing_ShippingOption_ShippingRules_RuleType = 1
	Listing_ShippingOption_ShippingRules_FLAT_FEE_WEIGHT_RANGE      Listing_ShippingOption_ShippingRules_RuleType = 2
	Listing_ShippingOption_ShippingRules_COMBINED_SHIPPING_ADD      Listing_ShippingOption_ShippingRules_RuleType = 3
	Listing_ShippingOption_ShippingRules_COMBINED_SHIPPING_SUBTRACT Listing_ShippingOption_ShippingRules_RuleType = 4
)

var Listing_ShippingOption_ShippingRules_RuleType_name = map[int32]string{
	0: "QUANTITY_DISCOUNT",
	1: "FLAT_FEE_QUANTITY_RANGE",
	2: "FLAT_FEE_WEIGHT_RANGE",
	3: "COMBINED_SHIPPING_ADD",
	4: "COMBINED_SHIPPING_SUBTRACT",
}
var Listing_ShippingOption_ShippingRules_RuleType_value = map[string]int32{
	"QUANTITY_DISCOUNT":          0,
	"FLAT_FEE_QUANTITY_RANGE":    1,
	"FLAT_FEE_WEIGHT_RANGE":      2,
	"COMBINED_SHIPPING_ADD":      3,
	"COMBINED_SHIPPING_SUBTRACT": 4,
}

func (x Listing_ShippingOption_ShippingRules_RuleType) String() string {
	return proto.EnumName(Listing_ShippingOption_ShippingRules_RuleType_name, int32(x))
}
func (Listing_ShippingOption_ShippingRules_RuleType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 1, 0}
}

type Order_Payment_Method int32

const (
	Order_Payment_ADDRESS_REQUEST Order_Payment_Method = 0
	Order_Payment_DIRECT          Order_Payment_Method = 1
	Order_Payment_MODERATED       Order_Payment_Method = 2
)

var Order_Payment_Method_name = map[int32]string{
	0: "ADDRESS_REQUEST",
	1: "DIRECT",
	2: "MODERATED",
}
var Order_Payment_Method_value = map[string]int32{
	"ADDRESS_REQUEST": 0,
	"DIRECT":          1,
	"MODERATED":       2,
}

func (x Order_Payment_Method) String() string {
	return proto.EnumName(Order_Payment_Method_name, int32(x))
}
func (Order_Payment_Method) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 2, 0} }

type Signature_Section int32

const (
	Signature_LISTING            Signature_Section = 0
	Signature_ORDER              Signature_Section = 1
	Signature_ORDER_CONFIRMATION Signature_Section = 2
	Signature_ORDER_FULFILLMENT  Signature_Section = 3
	Signature_ORDER_COMPLETION   Signature_Section = 4
	Signature_DISPUTE            Signature_Section = 5
	Signature_DISPUTE_RESOLUTION Signature_Section = 6
	Signature_REFUND             Signature_Section = 7
)

var Signature_Section_name = map[int32]string{
	0: "LISTING",
	1: "ORDER",
	2: "ORDER_CONFIRMATION",
	3: "ORDER_FULFILLMENT",
	4: "ORDER_COMPLETION",
	5: "DISPUTE",
	6: "DISPUTE_RESOLUTION",
	7: "REFUND",
}
var Signature_Section_value = map[string]int32{
	"LISTING":            0,
	"ORDER":              1,
	"ORDER_CONFIRMATION": 2,
	"ORDER_FULFILLMENT":  3,
	"ORDER_COMPLETION":   4,
	"DISPUTE":            5,
	"DISPUTE_RESOLUTION": 6,
	"REFUND":             7,
}

func (x Signature_Section) String() string {
	return proto.EnumName(Signature_Section_name, int32(x))
}
func (Signature_Section) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{16, 0} }

type RicardianContract struct {
	VendorListings          []*Listing          `protobuf:"bytes,1,rep,name=vendorListings" json:"vendorListings,omitempty"`
	BuyerOrder              *Order              `protobuf:"bytes,2,opt,name=buyerOrder" json:"buyerOrder,omitempty"`
	VendorOrderConfirmation *OrderConfirmation  `protobuf:"bytes,3,opt,name=vendorOrderConfirmation" json:"vendorOrderConfirmation,omitempty"`
	VendorOrderFulfillment  []*OrderFulfillment `protobuf:"bytes,4,rep,name=vendorOrderFulfillment" json:"vendorOrderFulfillment,omitempty"`
	BuyerOrderCompletion    *OrderCompletion    `protobuf:"bytes,5,opt,name=buyerOrderCompletion" json:"buyerOrderCompletion,omitempty"`
	Dispute                 *Dispute            `protobuf:"bytes,6,opt,name=dispute" json:"dispute,omitempty"`
	DisputeResolution       *DisputeResolution  `protobuf:"bytes,7,opt,name=disputeResolution" json:"disputeResolution,omitempty"`
	DisputeAcceptance       *DisputeAcceptance  `protobuf:"bytes,8,opt,name=disputeAcceptance" json:"disputeAcceptance,omitempty"`
	Refund                  *Refund             `protobuf:"bytes,9,opt,name=refund" json:"refund,omitempty"`
	Signatures              []*Signature        `protobuf:"bytes,10,rep,name=signatures" json:"signatures,omitempty"`
}

func (m *RicardianContract) Reset()                    { *m = RicardianContract{} }
func (m *RicardianContract) String() string            { return proto.CompactTextString(m) }
func (*RicardianContract) ProtoMessage()               {}
func (*RicardianContract) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }

func (m *RicardianContract) GetVendorListings() []*Listing {
	if m != nil {
		return m.VendorListings
	}
	return nil
}

func (m *RicardianContract) GetBuyerOrder() *Order {
	if m != nil {
		return m.BuyerOrder
	}
	return nil
}

func (m *RicardianContract) GetVendorOrderConfirmation() *OrderConfirmation {
	if m != nil {
		return m.VendorOrderConfirmation
	}
	return nil
}

func (m *RicardianContract) GetVendorOrderFulfillment() []*OrderFulfillment {
	if m != nil {
		return m.VendorOrderFulfillment
	}
	return nil
}

func (m *RicardianContract) GetBuyerOrderCompletion() *OrderCompletion {
	if m != nil {
		return m.BuyerOrderCompletion
	}
	return nil
}

func (m *RicardianContract) GetDispute() *Dispute {
	if m != nil {
		return m.Dispute
	}
	return nil
}

func (m *RicardianContract) GetDisputeResolution() *DisputeResolution {
	if m != nil {
		return m.DisputeResolution
	}
	return nil
}

func (m *RicardianContract) GetDisputeAcceptance() *DisputeAcceptance {
	if m != nil {
		return m.DisputeAcceptance
	}
	return nil
}

func (m *RicardianContract) GetRefund() *Refund {
	if m != nil {
		return m.Refund
	}
	return nil
}

func (m *RicardianContract) GetSignatures() []*Signature {
	if m != nil {
		return m.Signatures
	}
	return nil
}

type Listing struct {
	Slug               string                    `protobuf:"bytes,1,opt,name=slug" json:"slug,omitempty"`
	VendorID           *ID                       `protobuf:"bytes,2,opt,name=vendorID" json:"vendorID,omitempty"`
	Metadata           *Listing_Metadata         `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"`
	Item               *Listing_Item             `protobuf:"bytes,4,opt,name=item" json:"item,omitempty"`
	ShippingOptions    []*Listing_ShippingOption `protobuf:"bytes,5,rep,name=shippingOptions" json:"shippingOptions,omitempty"`
	Taxes              []*Listing_Tax            `protobuf:"bytes,6,rep,name=taxes" json:"taxes,omitempty"`
	Coupons            []*Listing_Coupon         `protobuf:"bytes,7,rep,name=coupons" json:"coupons,omitempty"`
	Moderators         []string                  `protobuf:"bytes,8,rep,name=moderators" json:"moderators,omitempty"`
	TermsAndConditions string                    `protobuf:"bytes,9,opt,name=termsAndConditions" json:"termsAndConditions,omitempty"`
	RefundPolicy       string                    `protobuf:"bytes,10,opt,name=refundPolicy" json:"refundPolicy,omitempty"`
}

func (m *Listing) Reset()                    { *m = Listing{} }
func (m *Listing) String() string            { return proto.CompactTextString(m) }
func (*Listing) ProtoMessage()               {}
func (*Listing) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }

func (m *Listing) GetSlug() string {
	if m != nil {
		return m.Slug
	}
	return ""
}

func (m *Listing) GetVendorID() *ID {
	if m != nil {
		return m.VendorID
	}
	return nil
}

func (m *Listing) GetMetadata() *Listing_Metadata {
	if m != nil {
		return m.Metadata
	}
	return nil
}

func (m *Listing) GetItem() *Listing_Item {
	if m != nil {
		return m.Item
	}
	return nil
}

func (m *Listing) GetShippingOptions() []*Listing_ShippingOption {
	if m != nil {
		return m.ShippingOptions
	}
	return nil
}

func (m *Listing) GetTaxes() []*Listing_Tax {
	if m != nil {
		return m.Taxes
	}
	return nil
}

func (m *Listing) GetCoupons() []*Listing_Coupon {
	if m != nil {
		return m.Coupons
	}
	return nil
}

func (m *Listing) GetModerators() []string {
	if m != nil {
		return m.Moderators
	}
	return nil
}

func (m *Listing) GetTermsAndConditions() string {
	if m != nil {
		return m.TermsAndConditions
	}
	return ""
}

func (m *Listing) GetRefundPolicy() string {
	if m != nil {
		return m.RefundPolicy
	}
	return ""
}

type Listing_Metadata struct {
	Version            uint32                        `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
	ContractType       Listing_Metadata_ContractType `protobuf:"varint,2,opt,name=contractType,enum=Listing_Metadata_ContractType" json:"contractType,omitempty"`
	Format             Listing_Metadata_Format       `protobuf:"varint,3,opt,name=format,enum=Listing_Metadata_Format" json:"format,omitempty"`
	Expiry             *google_protobuf.Timestamp    `protobuf:"bytes,4,opt,name=expiry" json:"expiry,omitempty"`
	AcceptedCurrencies []string                      `protobuf:"bytes,5,rep,name=acceptedCurrencies" json:"acceptedCurrencies,omitempty"`
	PricingCurrency    string                        `protobuf:"bytes,6,opt,name=pricingCurrency" json:"pricingCurrency,omitempty"`
	Language           string                        `protobuf:"bytes,7,opt,name=language" json:"language,omitempty"`
	EscrowTimeoutHours uint32                        `protobuf:"varint,8,opt,name=escrowTimeoutHours" json:"escrowTimeoutHours,omitempty"`
}

func (m *Listing_Metadata) Reset()                    { *m = Listing_Metadata{} }
func (m *Listing_Metadata) String() string            { return proto.CompactTextString(m) }
func (*Listing_Metadata) ProtoMessage()               {}
func (*Listing_Metadata) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 0} }

func (m *Listing_Metadata) GetVersion() uint32 {
	if m != nil {
		return m.Version
	}
	return 0
}

func (m *Listing_Metadata) GetContractType() Listing_Metadata_ContractType {
	if m != nil {
		return m.ContractType
	}
	return Listing_Metadata_PHYSICAL_GOOD
}

func (m *Listing_Metadata) GetFormat() Listing_Metadata_Format {
	if m != nil {
		return m.Format
	}
	return Listing_Metadata_FIXED_PRICE
}

func (m *Listing_Metadata) GetExpiry() *google_protobuf.Timestamp {
	if m != nil {
		return m.Expiry
	}
	return nil
}

func (m *Listing_Metadata) GetAcceptedCurrencies() []string {
	if m != nil {
		return m.AcceptedCurrencies
	}
	return nil
}

func (m *Listing_Metadata) GetPricingCurrency() string {
	if m != nil {
		return m.PricingCurrency
	}
	return ""
}

func (m *Listing_Metadata) GetLanguage() string {
	if m != nil {
		return m.Language
	}
	return ""
}

func (m *Listing_Metadata) GetEscrowTimeoutHours() uint32 {
	if m != nil {
		return m.EscrowTimeoutHours
	}
	return 0
}

type Listing_Item struct {
	Title          string                 `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
	Description    string                 `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	ProcessingTime string                 `protobuf:"bytes,3,opt,name=processingTime" json:"processingTime,omitempty"`
	Price          uint64                 `protobuf:"varint,4,opt,name=price" json:"price,omitempty"`
	Nsfw           bool                   `protobuf:"varint,5,opt,name=nsfw" json:"nsfw,omitempty"`
	Tags           []string               `protobuf:"bytes,6,rep,name=tags" json:"tags,omitempty"`
	Images         []*Listing_Item_Image  `protobuf:"bytes,7,rep,name=images" json:"images,omitempty"`
	Categories     []string               `protobuf:"bytes,8,rep,name=categories" json:"categories,omitempty"`
	Grams          float32                `protobuf:"fixed32,9,opt,name=grams" json:"grams,omitempty"`
	Condition      string                 `protobuf:"bytes,10,opt,name=condition" json:"condition,omitempty"`
	Options        []*Listing_Item_Option `protobuf:"bytes,11,rep,name=options" json:"options,omitempty"`
	Skus           []*Listing_Item_Sku    `protobuf:"bytes,12,rep,name=skus" json:"skus,omitempty"`
}

func (m *Listing_Item) Reset()                    { *m = Listing_Item{} }
func (m *Listing_Item) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item) ProtoMessage()               {}
func (*Listing_Item) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1} }

func (m *Listing_Item) GetTitle() string {
	if m != nil {
		return m.Title
	}
	return ""
}

func (m *Listing_Item) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Listing_Item) GetProcessingTime() string {
	if m != nil {
		return m.ProcessingTime
	}
	return ""
}

func (m *Listing_Item) GetPrice() uint64 {
	if m != nil {
		return m.Price
	}
	return 0
}

func (m *Listing_Item) GetNsfw() bool {
	if m != nil {
		return m.Nsfw
	}
	return false
}

func (m *Listing_Item) GetTags() []string {
	if m != nil {
		return m.Tags
	}
	return nil
}

func (m *Listing_Item) GetImages() []*Listing_Item_Image {
	if m != nil {
		return m.Images
	}
	return nil
}

func (m *Listing_Item) GetCategories() []string {
	if m != nil {
		return m.Categories
	}
	return nil
}

func (m *Listing_Item) GetGrams() float32 {
	if m != nil {
		return m.Grams
	}
	return 0
}

func (m *Listing_Item) GetCondition() string {
	if m != nil {
		return m.Condition
	}
	return ""
}

func (m *Listing_Item) GetOptions() []*Listing_Item_Option {
	if m != nil {
		return m.Options
	}
	return nil
}

func (m *Listing_Item) GetSkus() []*Listing_Item_Sku {
	if m != nil {
		return m.Skus
	}
	return nil
}

type Listing_Item_Option struct {
	Name        string                         `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Description string                         `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	Variants    []*Listing_Item_Option_Variant `protobuf:"bytes,3,rep,name=variants" json:"variants,omitempty"`
}

func (m *Listing_Item_Option) Reset()                    { *m = Listing_Item_Option{} }
func (m *Listing_Item_Option) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item_Option) ProtoMessage()               {}
func (*Listing_Item_Option) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1, 0} }

func (m *Listing_Item_Option) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_Item_Option) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Listing_Item_Option) GetVariants() []*Listing_Item_Option_Variant {
	if m != nil {
		return m.Variants
	}
	return nil
}

type Listing_Item_Option_Variant struct {
	Name  string              `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Image *Listing_Item_Image `protobuf:"bytes,2,opt,name=image" json:"image,omitempty"`
}

func (m *Listing_Item_Option_Variant) Reset()         { *m = Listing_Item_Option_Variant{} }
func (m *Listing_Item_Option_Variant) String() string { return proto.CompactTextString(m) }
func (*Listing_Item_Option_Variant) ProtoMessage()    {}
func (*Listing_Item_Option_Variant) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 1, 0, 0}
}

func (m *Listing_Item_Option_Variant) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_Item_Option_Variant) GetImage() *Listing_Item_Image {
	if m != nil {
		return m.Image
	}
	return nil
}

type Listing_Item_Sku struct {
	VariantCombo []uint32 `protobuf:"varint,1,rep,packed,name=variantCombo" json:"variantCombo,omitempty"`
	ProductID    string   `protobuf:"bytes,2,opt,name=productID" json:"productID,omitempty"`
	Surcharge    int64    `protobuf:"varint,3,opt,name=surcharge" json:"surcharge,omitempty"`
	Quantity     int64    `protobuf:"varint,4,opt,name=quantity" json:"quantity,omitempty"`
}

func (m *Listing_Item_Sku) Reset()                    { *m = Listing_Item_Sku{} }
func (m *Listing_Item_Sku) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item_Sku) ProtoMessage()               {}
func (*Listing_Item_Sku) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1, 1} }

func (m *Listing_Item_Sku) GetVariantCombo() []uint32 {
	if m != nil {
		return m.VariantCombo
	}
	return nil
}

func (m *Listing_Item_Sku) GetProductID() string {
	if m != nil {
		return m.ProductID
	}
	return ""
}

func (m *Listing_Item_Sku) GetSurcharge() int64 {
	if m != nil {
		return m.Surcharge
	}
	return 0
}

func (m *Listing_Item_Sku) GetQuantity() int64 {
	if m != nil {
		return m.Quantity
	}
	return 0
}

type Listing_Item_Image struct {
	Filename string `protobuf:"bytes,1,opt,name=filename" json:"filename,omitempty"`
	Original string `protobuf:"bytes,2,opt,name=original" json:"original,omitempty"`
	Large    string `protobuf:"bytes,3,opt,name=large" json:"large,omitempty"`
	Medium   string `protobuf:"bytes,4,opt,name=medium" json:"medium,omitempty"`
	Small    string `protobuf:"bytes,5,opt,name=small" json:"small,omitempty"`
	Tiny     string `protobuf:"bytes,6,opt,name=tiny" json:"tiny,omitempty"`
}

func (m *Listing_Item_Image) Reset()                    { *m = Listing_Item_Image{} }
func (m *Listing_Item_Image) String() string            { return proto.CompactTextString(m) }
func (*Listing_Item_Image) ProtoMessage()               {}
func (*Listing_Item_Image) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 1, 2} }

func (m *Listing_Item_Image) GetFilename() string {
	if m != nil {
		return m.Filename
	}
	return ""
}

func (m *Listing_Item_Image) GetOriginal() string {
	if m != nil {
		return m.Original
	}
	return ""
}

func (m *Listing_Item_Image) GetLarge() string {
	if m != nil {
		return m.Large
	}
	return ""
}

func (m *Listing_Item_Image) GetMedium() string {
	if m != nil {
		return m.Medium
	}
	return ""
}

func (m *Listing_Item_Image) GetSmall() string {
	if m != nil {
		return m.Small
	}
	return ""
}

func (m *Listing_Item_Image) GetTiny() string {
	if m != nil {
		return m.Tiny
	}
	return ""
}

type Listing_ShippingOption struct {
	Name          string                                `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Type          Listing_ShippingOption_ShippingType   `protobuf:"varint,2,opt,name=type,enum=Listing_ShippingOption_ShippingType" json:"type,omitempty"`
	Regions       []CountryCode                         `protobuf:"varint,3,rep,packed,name=regions,enum=CountryCode" json:"regions,omitempty"`
	ShippingRules *Listing_ShippingOption_ShippingRules `protobuf:"bytes,4,opt,name=shippingRules" json:"shippingRules,omitempty"`
	Services      []*Listing_ShippingOption_Service     `protobuf:"bytes,5,rep,name=services" json:"services,omitempty"`
}

func (m *Listing_ShippingOption) Reset()                    { *m = Listing_ShippingOption{} }
func (m *Listing_ShippingOption) String() string            { return proto.CompactTextString(m) }
func (*Listing_ShippingOption) ProtoMessage()               {}
func (*Listing_ShippingOption) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 2} }

func (m *Listing_ShippingOption) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_ShippingOption) GetType() Listing_ShippingOption_ShippingType {
	if m != nil {
		return m.Type
	}
	return Listing_ShippingOption_LOCAL_PICKUP
}

func (m *Listing_ShippingOption) GetRegions() []CountryCode {
	if m != nil {
		return m.Regions
	}
	return nil
}

func (m *Listing_ShippingOption) GetShippingRules() *Listing_ShippingOption_ShippingRules {
	if m != nil {
		return m.ShippingRules
	}
	return nil
}

func (m *Listing_ShippingOption) GetServices() []*Listing_ShippingOption_Service {
	if m != nil {
		return m.Services
	}
	return nil
}

type Listing_ShippingOption_Service struct {
	Name              string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Price             uint64 `protobuf:"varint,2,opt,name=price" json:"price,omitempty"`
	EstimatedDelivery string `protobuf:"bytes,3,opt,name=estimatedDelivery" json:"estimatedDelivery,omitempty"`
}

func (m *Listing_ShippingOption_Service) Reset()         { *m = Listing_ShippingOption_Service{} }
func (m *Listing_ShippingOption_Service) String() string { return proto.CompactTextString(m) }
func (*Listing_ShippingOption_Service) ProtoMessage()    {}
func (*Listing_ShippingOption_Service) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 0}
}

func (m *Listing_ShippingOption_Service) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Listing_ShippingOption_Service) GetPrice() uint64 {
	if m != nil {
		return m.Price
	}
	return 0
}

func (m *Listing_ShippingOption_Service) GetEstimatedDelivery() string {
	if m != nil {
		return m.EstimatedDelivery
	}
	return ""
}

type Listing_ShippingOption_ShippingRules struct {
	RuleType Listing_ShippingOption_ShippingRules_RuleType `protobuf:"varint,1,opt,name=ruleType,enum=Listing_ShippingOption_ShippingRules_RuleType" json:"ruleType,omitempty"`
	Rules    []*Listing_ShippingOption_ShippingRules_Rule  `protobuf:"bytes,2,rep,name=rules" json:"rules,omitempty"`
}

func (m *Listing_ShippingOption_ShippingRules) Reset()         { *m = Listing_ShippingOption_ShippingRules{} }
func (m *Listing_ShippingOption_ShippingRules) String() string { return proto.CompactTextString(m) }
func (*Listing_ShippingOption_ShippingRules) ProtoMessage()    {}
func (*Listing_ShippingOption_ShippingRules) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 1}
}

func (m *Listing_ShippingOption_ShippingRules) GetRuleType() Listing_ShippingOption_ShippingRules_RuleType {
	if m != nil {
		return m.RuleType
	}
	return Listing_ShippingOption_ShippingRules_QUANTITY_DISCOUNT
}

func (m *Listing_ShippingOption_ShippingRules) GetRules() []*Listing_ShippingOption_ShippingRules_Rule {
	if m != nil {
		return m.Rules
	}
	return nil
}

type Listing_ShippingOption_ShippingRules_Rule struct {
	MinRange uint32 `protobuf:"varint,1,opt,name=minRange" json:"minRange,omitempty"`
	MaxRange uint32 `protobuf:"varint,2,opt,name=maxRange" json:"maxRange,omitempty"`
	Price    uint64 `protobuf:"varint,3,opt,name=price" json:"price,omitempty"`
}

func (m *Listing_ShippingOption_ShippingRules_Rule) Reset() {
	*m = Listing_ShippingOption_ShippingRules_Rule{}
}
func (m *Listing_ShippingOption_ShippingRules_Rule) String() string { return proto.CompactTextString(m) }
func (*Listing_ShippingOption_ShippingRules_Rule) ProtoMessage()    {}
func (*Listing_ShippingOption_ShippingRules_Rule) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{1, 2, 1, 0}
}

func (m *Listing_ShippingOption_ShippingRules_Rule) GetMinRange() uint32 {
	if m != nil {
		return m.MinRange
	}
	return 0
}

func (m *Listing_ShippingOption_ShippingRules_Rule) GetMaxRange() uint32 {
	if m != nil {
		return m.MaxRange
	}
	return 0
}

func (m *Listing_ShippingOption_ShippingRules_Rule) GetPrice() uint64 {
	if m != nil {
		return m.Price
	}
	return 0
}

type Listing_Tax struct {
	TaxType     string        `protobuf:"bytes,1,opt,name=taxType" json:"taxType,omitempty"`
	TaxRegions  []CountryCode `protobuf:"varint,2,rep,packed,name=taxRegions,enum=CountryCode" json:"taxRegions,omitempty"`
	TaxShipping bool          `protobuf:"varint,3,opt,name=taxShipping" json:"taxShipping,omitempty"`
	Percentage  float32       `protobuf:"fixed32,4,opt,name=percentage" json:"percentage,omitempty"`
}

func (m *Listing_Tax) Reset()                    { *m = Listing_Tax{} }
func (m *Listing_Tax) String() string            { return proto.CompactTextString(m) }
func (*Listing_Tax) ProtoMessage()               {}
func (*Listing_Tax) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 3} }

func (m *Listing_Tax) GetTaxType() string {
	if m != nil {
		return m.TaxType
	}
	return ""
}

func (m *Listing_Tax) GetTaxRegions() []CountryCode {
	if m != nil {
		return m.TaxRegions
	}
	return nil
}

func (m *Listing_Tax) GetTaxShipping() bool {
	if m != nil {
		return m.TaxShipping
	}
	return false
}

func (m *Listing_Tax) GetPercentage() float32 {
	if m != nil {
		return m.Percentage
	}
	return 0
}

type Listing_Coupon struct {
	Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
	// Types that are valid to be assigned to Code:
	//	*Listing_Coupon_Hash
	//	*Listing_Coupon_DiscountCode
	Code isListing_Coupon_Code `protobuf_oneof:"code"`
	// Types that are valid to be assigned to Discount:
	//	*Listing_Coupon_PercentDiscount
	//	*Listing_Coupon_PriceDiscount
	Discount isListing_Coupon_Discount `protobuf_oneof:"discount"`
}

func (m *Listing_Coupon) Reset()                    { *m = Listing_Coupon{} }
func (m *Listing_Coupon) String() string            { return proto.CompactTextString(m) }
func (*Listing_Coupon) ProtoMessage()               {}
func (*Listing_Coupon) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 4} }

type isListing_Coupon_Code interface {
	isListing_Coupon_Code()
}
type isListing_Coupon_Discount interface {
	isListing_Coupon_Discount()
}

type Listing_Coupon_Hash struct {
	Hash string `protobuf:"bytes,2,opt,name=hash,oneof"`
}
type Listing_Coupon_DiscountCode struct {
	DiscountCode string `protobuf:"bytes,3,opt,name=discountCode,oneof"`
}
type Listing_Coupon_PercentDiscount struct {
	PercentDiscount float32 `protobuf:"fixed32,5,opt,name=percentDiscount,oneof"`
}
type Listing_Coupon_PriceDiscount struct {
	PriceDiscount uint64 `protobuf:"varint,6,opt,name=priceDiscount,oneof"`
}

func (*Listing_Coupon_Hash) isListing_Coupon_Code()                {}
func (*Listing_Coupon_DiscountCode) isListing_Coupon_Code()        {}
func (*Listing_Coupon_PercentDiscount) isListing_Coupon_Discount() {}
func (*Listing_Coupon_PriceDiscount) isListing_Coupon_Discount()   {}

func (m *Listing_Coupon) GetCode() isListing_Coupon_Code {
	if m != nil {
		return m.Code
	}
	return nil
}
func (m *Listing_Coupon) GetDiscount() isListing_Coupon_Discount {
	if m != nil {
		return m.Discount
	}
	return nil
}

func (m *Listing_Coupon) GetTitle() string {
	if m != nil {
		return m.Title
	}
	return ""
}

func (m *Listing_Coupon) GetHash() string {
	if x, ok := m.GetCode().(*Listing_Coupon_Hash); ok {
		return x.Hash
	}
	return ""
}

func (m *Listing_Coupon) GetDiscountCode() string {
	if x, ok := m.GetCode().(*Listing_Coupon_DiscountCode); ok {
		return x.DiscountCode
	}
	return ""
}

func (m *Listing_Coupon) GetPercentDiscount() float32 {
	if x, ok := m.GetDiscount().(*Listing_Coupon_PercentDiscount); ok {
		return x.PercentDiscount
	}
	return 0
}

func (m *Listing_Coupon) GetPriceDiscount() uint64 {
	if x, ok := m.GetDiscount().(*Listing_Coupon_PriceDiscount); ok {
		return x.PriceDiscount
	}
	return 0
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*Listing_Coupon) 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{}) {
	return _Listing_Coupon_OneofMarshaler, _Listing_Coupon_OneofUnmarshaler, _Listing_Coupon_OneofSizer, []interface{}{
		(*Listing_Coupon_Hash)(nil),
		(*Listing_Coupon_DiscountCode)(nil),
		(*Listing_Coupon_PercentDiscount)(nil),
		(*Listing_Coupon_PriceDiscount)(nil),
	}
}

func _Listing_Coupon_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Listing_Coupon)
	// code
	switch x := m.Code.(type) {
	case *Listing_Coupon_Hash:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.Hash)
	case *Listing_Coupon_DiscountCode:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.DiscountCode)
	case nil:
	default:
		return fmt.Errorf("Listing_Coupon.Code has unexpected type %T", x)
	}
	// discount
	switch x := m.Discount.(type) {
	case *Listing_Coupon_PercentDiscount:
		b.EncodeVarint(5<<3 | proto.WireFixed32)
		b.EncodeFixed32(uint64(math.Float32bits(x.PercentDiscount)))
	case *Listing_Coupon_PriceDiscount:
		b.EncodeVarint(6<<3 | proto.WireVarint)
		b.EncodeVarint(uint64(x.PriceDiscount))
	case nil:
	default:
		return fmt.Errorf("Listing_Coupon.Discount has unexpected type %T", x)
	}
	return nil
}

func _Listing_Coupon_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Listing_Coupon)
	switch tag {
	case 2: // code.hash
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Code = &Listing_Coupon_Hash{x}
		return true, err
	case 3: // code.discountCode
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Code = &Listing_Coupon_DiscountCode{x}
		return true, err
	case 5: // discount.percentDiscount
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.Discount = &Listing_Coupon_PercentDiscount{math.Float32frombits(uint32(x))}
		return true, err
	case 6: // discount.priceDiscount
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Discount = &Listing_Coupon_PriceDiscount{x}
		return true, err
	default:
		return false, nil
	}
}

func _Listing_Coupon_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*Listing_Coupon)
	// code
	switch x := m.Code.(type) {
	case *Listing_Coupon_Hash:
		n += proto.SizeVarint(2<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Hash)))
		n += len(x.Hash)
	case *Listing_Coupon_DiscountCode:
		n += proto.SizeVarint(3<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.DiscountCode)))
		n += len(x.DiscountCode)
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	// discount
	switch x := m.Discount.(type) {
	case *Listing_Coupon_PercentDiscount:
		n += proto.SizeVarint(5<<3 | proto.WireFixed32)
		n += 4
	case *Listing_Coupon_PriceDiscount:
		n += proto.SizeVarint(6<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.PriceDiscount))
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type Order struct {
	RefundAddress        string                     `protobuf:"bytes,1,opt,name=refundAddress" json:"refundAddress,omitempty"`
	RefundFee            uint64                     `protobuf:"varint,2,opt,name=refundFee" json:"refundFee,omitempty"`
	Shipping             *Order_Shipping            `protobuf:"bytes,3,opt,name=shipping" json:"shipping,omitempty"`
	BuyerID              *ID                        `protobuf:"bytes,4,opt,name=buyerID" json:"buyerID,omitempty"`
	Timestamp            *google_protobuf.Timestamp `protobuf:"bytes,5,opt,name=timestamp" json:"timestamp,omitempty"`
	Items                []*Order_Item              `protobuf:"bytes,6,rep,name=items" json:"items,omitempty"`
	Payment              *Order_Payment             `protobuf:"bytes,7,opt,name=payment" json:"payment,omitempty"`
	RatingKeys           [][]byte                   `protobuf:"bytes,8,rep,name=ratingKeys,proto3" json:"ratingKeys,omitempty"`
	AlternateContactInfo string                     `protobuf:"bytes,9,opt,name=alternateContactInfo" json:"alternateContactInfo,omitempty"`
}

func (m *Order) Reset()                    { *m = Order{} }
func (m *Order) String() string            { return proto.CompactTextString(m) }
func (*Order) ProtoMessage()               {}
func (*Order) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }

func (m *Order) GetRefundAddress() string {
	if m != nil {
		return m.RefundAddress
	}
	return ""
}

func (m *Order) GetRefundFee() uint64 {
	if m != nil {
		return m.RefundFee
	}
	return 0
}

func (m *Order) GetShipping() *Order_Shipping {
	if m != nil {
		return m.Shipping
	}
	return nil
}

func (m *Order) GetBuyerID() *ID {
	if m != nil {
		return m.BuyerID
	}
	return nil
}

func (m *Order) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Order) GetItems() []*Order_Item {
	if m != nil {
		return m.Items
	}
	return nil
}

func (m *Order) GetPayment() *Order_Payment {
	if m != nil {
		return m.Payment
	}
	return nil
}

func (m *Order) GetRatingKeys() [][]byte {
	if m != nil {
		return m.RatingKeys
	}
	return nil
}

func (m *Order) GetAlternateContactInfo() string {
	if m != nil {
		return m.AlternateContactInfo
	}
	return ""
}

type Order_Shipping struct {
	ShipTo       string      `protobuf:"bytes,1,opt,name=shipTo" json:"shipTo,omitempty"`
	Address      string      `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
	City         string      `protobuf:"bytes,3,opt,name=city" json:"city,omitempty"`
	State        string      `protobuf:"bytes,4,opt,name=state" json:"state,omitempty"`
	PostalCode   string      `protobuf:"bytes,5,opt,name=postalCode" json:"postalCode,omitempty"`
	Country      CountryCode `protobuf:"varint,6,opt,name=country,enum=CountryCode" json:"country,omitempty"`
	AddressNotes string      `protobuf:"bytes,7,opt,name=addressNotes" json:"addressNotes,omitempty"`
}

func (m *Order_Shipping) Reset()                    { *m = Order_Shipping{} }
func (m *Order_Shipping) String() string            { return proto.CompactTextString(m) }
func (*Order_Shipping) ProtoMessage()               {}
func (*Order_Shipping) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 0} }

func (m *Order_Shipping) GetShipTo() string {
	if m != nil {
		return m.ShipTo
	}
	return ""
}

func (m *Order_Shipping) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

func (m *Order_Shipping) GetCity() string {
	if m != nil {
		return m.City
	}
	return ""
}

func (m *Order_Shipping) GetState() string {
	if m != nil {
		return m.State
	}
	return ""
}

func (m *Order_Shipping) GetPostalCode() string {
	if m != nil {
		return m.PostalCode
	}
	return ""
}

func (m *Order_Shipping) GetCountry() CountryCode {
	if m != nil {
		return m.Country
	}
	return CountryCode_NA
}

func (m *Order_Shipping) GetAddressNotes() string {
	if m != nil {
		return m.AddressNotes
	}
	return ""
}

type Order_Item struct {
	ListingHash    string                     `protobuf:"bytes,1,opt,name=listingHash" json:"listingHash,omitempty"`
	Quantity       uint32                     `protobuf:"varint,2,opt,name=quantity" json:"quantity,omitempty"`
	Options        []*Order_Item_Option       `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"`
	ShippingOption *Order_Item_ShippingOption `protobuf:"bytes,4,opt,name=shippingOption" json:"shippingOption,omitempty"`
	Memo           string                     `protobuf:"bytes,5,opt,name=memo" json:"memo,omitempty"`
	CouponCodes    []string                   `protobuf:"bytes,6,rep,name=couponCodes" json:"couponCodes,omitempty"`
}

func (m *Order_Item) Reset()                    { *m = Order_Item{} }
func (m *Order_Item) String() string            { return proto.CompactTextString(m) }
func (*Order_Item) ProtoMessage()               {}
func (*Order_Item) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 1} }

func (m *Order_Item) GetListingHash() string {
	if m != nil {
		return m.ListingHash
	}
	return ""
}

func (m *Order_Item) GetQuantity() uint32 {
	if m != nil {
		return m.Quantity
	}
	return 0
}

func (m *Order_Item) GetOptions() []*Order_Item_Option {
	if m != nil {
		return m.Options
	}
	return nil
}

func (m *Order_Item) GetShippingOption() *Order_Item_ShippingOption {
	if m != nil {
		return m.ShippingOption
	}
	return nil
}

func (m *Order_Item) GetMemo() string {
	if m != nil {
		return m.Memo
	}
	return ""
}

func (m *Order_Item) GetCouponCodes() []string {
	if m != nil {
		return m.CouponCodes
	}
	return nil
}

type Order_Item_Option struct {
	Name  string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *Order_Item_Option) Reset()                    { *m = Order_Item_Option{} }
func (m *Order_Item_Option) String() string            { return proto.CompactTextString(m) }
func (*Order_Item_Option) ProtoMessage()               {}
func (*Order_Item_Option) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 1, 0} }

func (m *Order_Item_Option) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Order_Item_Option) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type Order_Item_ShippingOption struct {
	Name    string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Service string `protobuf:"bytes,2,opt,name=service" json:"service,omitempty"`
}

func (m *Order_Item_ShippingOption) Reset()                    { *m = Order_Item_ShippingOption{} }
func (m *Order_Item_ShippingOption) String() string            { return proto.CompactTextString(m) }
func (*Order_Item_ShippingOption) ProtoMessage()               {}
func (*Order_Item_ShippingOption) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 1, 1} }

func (m *Order_Item_ShippingOption) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Order_Item_ShippingOption) GetService() string {
	if m != nil {
		return m.Service
	}
	return ""
}

type Order_Payment struct {
	Method       Order_Payment_Method `protobuf:"varint,1,opt,name=method,enum=Order_Payment_Method" json:"method,omitempty"`
	Moderator    string               `protobuf:"bytes,2,opt,name=moderator" json:"moderator,omitempty"`
	Amount       uint64               `protobuf:"varint,3,opt,name=amount" json:"amount,omitempty"`
	Chaincode    string               `protobuf:"bytes,4,opt,name=chaincode" json:"chaincode,omitempty"`
	Address      string               `protobuf:"bytes,5,opt,name=address" json:"address,omitempty"`
	RedeemScript string               `protobuf:"bytes,6,opt,name=redeemScript" json:"redeemScript,omitempty"`
	ModeratorKey []byte               `protobuf:"bytes,7,opt,name=moderatorKey,proto3" json:"moderatorKey,omitempty"`
}

func (m *Order_Payment) Reset()                    { *m = Order_Payment{} }
func (m *Order_Payment) String() string            { return proto.CompactTextString(m) }
func (*Order_Payment) ProtoMessage()               {}
func (*Order_Payment) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 2} }

func (m *Order_Payment) GetMethod() Order_Payment_Method {
	if m != nil {
		return m.Method
	}
	return Order_Payment_ADDRESS_REQUEST
}

func (m *Order_Payment) GetModerator() string {
	if m != nil {
		return m.Moderator
	}
	return ""
}

func (m *Order_Payment) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

func (m *Order_Payment) GetChaincode() string {
	if m != nil {
		return m.Chaincode
	}
	return ""
}

func (m *Order_Payment) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

func (m *Order_Payment) GetRedeemScript() string {
	if m != nil {
		return m.RedeemScript
	}
	return ""
}

func (m *Order_Payment) GetModeratorKey() []byte {
	if m != nil {
		return m.ModeratorKey
	}
	return nil
}

type OrderConfirmation struct {
	OrderID   string                     `protobuf:"bytes,1,opt,name=orderID" json:"orderID,omitempty"`
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
	// Direct payments only
	PaymentAddress   string             `protobuf:"bytes,3,opt,name=paymentAddress" json:"paymentAddress,omitempty"`
	RequestedAmount  uint64             `protobuf:"varint,4,opt,name=requestedAmount" json:"requestedAmount,omitempty"`
	RatingSignatures []*RatingSignature `protobuf:"bytes,5,rep,name=ratingSignatures" json:"ratingSignatures,omitempty"`
}

func (m *OrderConfirmation) Reset()                    { *m = OrderConfirmation{} }
func (m *OrderConfirmation) String() string            { return proto.CompactTextString(m) }
func (*OrderConfirmation) ProtoMessage()               {}
func (*OrderConfirmation) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }

func (m *OrderConfirmation) GetOrderID() string {
	if m != nil {
		return m.OrderID
	}
	return ""
}

func (m *OrderConfirmation) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderConfirmation) GetPaymentAddress() string {
	if m != nil {
		return m.PaymentAddress
	}
	return ""
}

func (m *OrderConfirmation) GetRequestedAmount() uint64 {
	if m != nil {
		return m.RequestedAmount
	}
	return 0
}

func (m *OrderConfirmation) GetRatingSignatures() []*RatingSignature {
	if m != nil {
		return m.RatingSignatures
	}
	return nil
}

type OrderReject struct {
	OrderID   string                     `protobuf:"bytes,1,opt,name=orderID" json:"orderID,omitempty"`
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
	Sigs      []*BitcoinSignature        `protobuf:"bytes,3,rep,name=sigs" json:"sigs,omitempty"`
}

func (m *OrderReject) Reset()                    { *m = OrderReject{} }
func (m *OrderReject) String() string            { return proto.CompactTextString(m) }
func (*OrderReject) ProtoMessage()               {}
func (*OrderReject) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }

func (m *OrderReject) GetOrderID() string {
	if m != nil {
		return m.OrderID
	}
	return ""
}

func (m *OrderReject) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderReject) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

type RatingSignature struct {
	Metadata  *RatingSignature_TransactionMetadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"`
	Signature []byte                               `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *RatingSignature) Reset()                    { *m = RatingSignature{} }
func (m *RatingSignature) String() string            { return proto.CompactTextString(m) }
func (*RatingSignature) ProtoMessage()               {}
func (*RatingSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }

func (m *RatingSignature) GetMetadata() *RatingSignature_TransactionMetadata {
	if m != nil {
		return m.Metadata
	}
	return nil
}

func (m *RatingSignature) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

type RatingSignature_TransactionMetadata struct {
	ListingSlug  string `protobuf:"bytes,1,opt,name=listingSlug" json:"listingSlug,omitempty"`
	RatingKey    []byte `protobuf:"bytes,2,opt,name=ratingKey,proto3" json:"ratingKey,omitempty"`
	ModeratorKey []byte `protobuf:"bytes,3,opt,name=moderatorKey,proto3" json:"moderatorKey,omitempty"`
}

func (m *RatingSignature_TransactionMetadata) Reset()         { *m = RatingSignature_TransactionMetadata{} }
func (m *RatingSignature_TransactionMetadata) String() string { return proto.CompactTextString(m) }
func (*RatingSignature_TransactionMetadata) ProtoMessage()    {}
func (*RatingSignature_TransactionMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{5, 0}
}

func (m *RatingSignature_TransactionMetadata) GetListingSlug() string {
	if m != nil {
		return m.ListingSlug
	}
	return ""
}

func (m *RatingSignature_TransactionMetadata) GetRatingKey() []byte {
	if m != nil {
		return m.RatingKey
	}
	return nil
}

func (m *RatingSignature_TransactionMetadata) GetModeratorKey() []byte {
	if m != nil {
		return m.ModeratorKey
	}
	return nil
}

type BitcoinSignature struct {
	InputIndex uint32 `protobuf:"varint,1,opt,name=inputIndex" json:"inputIndex,omitempty"`
	Signature  []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *BitcoinSignature) Reset()                    { *m = BitcoinSignature{} }
func (m *BitcoinSignature) String() string            { return proto.CompactTextString(m) }
func (*BitcoinSignature) ProtoMessage()               {}
func (*BitcoinSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }

func (m *BitcoinSignature) GetInputIndex() uint32 {
	if m != nil {
		return m.InputIndex
	}
	return 0
}

func (m *BitcoinSignature) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

type OrderFulfillment struct {
	OrderId   string                     `protobuf:"bytes,1,opt,name=orderId" json:"orderId,omitempty"`
	Slug      string                     `protobuf:"bytes,2,opt,name=slug" json:"slug,omitempty"`
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp,omitempty"`
	// Physical goods only
	PhysicalDelivery []*OrderFulfillment_PhysicalDelivery `protobuf:"bytes,4,rep,name=physicalDelivery" json:"physicalDelivery,omitempty"`
	// Digital goods only
	DigitalDelivery []*OrderFulfillment_DigitalDelivery `protobuf:"bytes,5,rep,name=digitalDelivery" json:"digitalDelivery,omitempty"`
	// Moderated payments only
	Payout          *OrderFulfillment_Payout `protobuf:"bytes,6,opt,name=payout" json:"payout,omitempty"`
	RatingSignature *RatingSignature         `protobuf:"bytes,7,opt,name=ratingSignature" json:"ratingSignature,omitempty"`
	Note            string                   `protobuf:"bytes,8,opt,name=note" json:"note,omitempty"`
}

func (m *OrderFulfillment) Reset()                    { *m = OrderFulfillment{} }
func (m *OrderFulfillment) String() string            { return proto.CompactTextString(m) }
func (*OrderFulfillment) ProtoMessage()               {}
func (*OrderFulfillment) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }

func (m *OrderFulfillment) GetOrderId() string {
	if m != nil {
		return m.OrderId
	}
	return ""
}

func (m *OrderFulfillment) GetSlug() string {
	if m != nil {
		return m.Slug
	}
	return ""
}

func (m *OrderFulfillment) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderFulfillment) GetPhysicalDelivery() []*OrderFulfillment_PhysicalDelivery {
	if m != nil {
		return m.PhysicalDelivery
	}
	return nil
}

func (m *OrderFulfillment) GetDigitalDelivery() []*OrderFulfillment_DigitalDelivery {
	if m != nil {
		return m.DigitalDelivery
	}
	return nil
}

func (m *OrderFulfillment) GetPayout() *OrderFulfillment_Payout {
	if m != nil {
		return m.Payout
	}
	return nil
}

func (m *OrderFulfillment) GetRatingSignature() *RatingSignature {
	if m != nil {
		return m.RatingSignature
	}
	return nil
}

func (m *OrderFulfillment) GetNote() string {
	if m != nil {
		return m.Note
	}
	return ""
}

type OrderFulfillment_PhysicalDelivery struct {
	Shipper        string `protobuf:"bytes,1,opt,name=shipper" json:"shipper,omitempty"`
	TrackingNumber string `protobuf:"bytes,2,opt,name=trackingNumber" json:"trackingNumber,omitempty"`
}

func (m *OrderFulfillment_PhysicalDelivery) Reset()         { *m = OrderFulfillment_PhysicalDelivery{} }
func (m *OrderFulfillment_PhysicalDelivery) String() string { return proto.CompactTextString(m) }
func (*OrderFulfillment_PhysicalDelivery) ProtoMessage()    {}
func (*OrderFulfillment_PhysicalDelivery) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{7, 0}
}

func (m *OrderFulfillment_PhysicalDelivery) GetShipper() string {
	if m != nil {
		return m.Shipper
	}
	return ""
}

func (m *OrderFulfillment_PhysicalDelivery) GetTrackingNumber() string {
	if m != nil {
		return m.TrackingNumber
	}
	return ""
}

type OrderFulfillment_DigitalDelivery struct {
	Url      string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
}

func (m *OrderFulfillment_DigitalDelivery) Reset()         { *m = OrderFulfillment_DigitalDelivery{} }
func (m *OrderFulfillment_DigitalDelivery) String() string { return proto.CompactTextString(m) }
func (*OrderFulfillment_DigitalDelivery) ProtoMessage()    {}
func (*OrderFulfillment_DigitalDelivery) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{7, 1}
}

func (m *OrderFulfillment_DigitalDelivery) GetUrl() string {
	if m != nil {
		return m.Url
	}
	return ""
}

func (m *OrderFulfillment_DigitalDelivery) GetPassword() string {
	if m != nil {
		return m.Password
	}
	return ""
}

type OrderFulfillment_Payout struct {
	Sigs             []*BitcoinSignature `protobuf:"bytes,1,rep,name=sigs" json:"sigs,omitempty"`
	PayoutAddress    string              `protobuf:"bytes,2,opt,name=payoutAddress" json:"payoutAddress,omitempty"`
	PayoutFeePerByte uint64              `protobuf:"varint,3,opt,name=payoutFeePerByte" json:"payoutFeePerByte,omitempty"`
}

func (m *OrderFulfillment_Payout) Reset()                    { *m = OrderFulfillment_Payout{} }
func (m *OrderFulfillment_Payout) String() string            { return proto.CompactTextString(m) }
func (*OrderFulfillment_Payout) ProtoMessage()               {}
func (*OrderFulfillment_Payout) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7, 2} }

func (m *OrderFulfillment_Payout) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

func (m *OrderFulfillment_Payout) GetPayoutAddress() string {
	if m != nil {
		return m.PayoutAddress
	}
	return ""
}

func (m *OrderFulfillment_Payout) GetPayoutFeePerByte() uint64 {
	if m != nil {
		return m.PayoutFeePerByte
	}
	return 0
}

type OrderCompletion struct {
	OrderId    string                     `protobuf:"bytes,1,opt,name=orderId" json:"orderId,omitempty"`
	Timestamp  *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
	PayoutSigs []*BitcoinSignature        `protobuf:"bytes,3,rep,name=payoutSigs" json:"payoutSigs,omitempty"`
	Ratings    []*Rating                  `protobuf:"bytes,4,rep,name=ratings" json:"ratings,omitempty"`
}

func (m *OrderCompletion) Reset()                    { *m = OrderCompletion{} }
func (m *OrderCompletion) String() string            { return proto.CompactTextString(m) }
func (*OrderCompletion) ProtoMessage()               {}
func (*OrderCompletion) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }

func (m *OrderCompletion) GetOrderId() string {
	if m != nil {
		return m.OrderId
	}
	return ""
}

func (m *OrderCompletion) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *OrderCompletion) GetPayoutSigs() []*BitcoinSignature {
	if m != nil {
		return m.PayoutSigs
	}
	return nil
}

func (m *OrderCompletion) GetRatings() []*Rating {
	if m != nil {
		return m.Ratings
	}
	return nil
}

type Rating struct {
	RatingData *Rating_RatingData `protobuf:"bytes,1,opt,name=ratingData" json:"ratingData,omitempty"`
	Signature  []byte             `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *Rating) Reset()                    { *m = Rating{} }
func (m *Rating) String() string            { return proto.CompactTextString(m) }
func (*Rating) ProtoMessage()               {}
func (*Rating) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }

func (m *Rating) GetRatingData() *Rating_RatingData {
	if m != nil {
		return m.RatingData
	}
	return nil
}

func (m *Rating) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

type Rating_RatingData struct {
	RatingKey       []byte                     `protobuf:"bytes,1,opt,name=ratingKey,proto3" json:"ratingKey,omitempty"`
	VendorID        *ID                        `protobuf:"bytes,2,opt,name=vendorID" json:"vendorID,omitempty"`
	VendorSig       *RatingSignature           `protobuf:"bytes,3,opt,name=vendorSig" json:"vendorSig,omitempty"`
	BuyerID         *ID                        `protobuf:"bytes,4,opt,name=buyerID" json:"buyerID,omitempty"`
	BuyerName       string                     `protobuf:"bytes,5,opt,name=buyerName" json:"buyerName,omitempty"`
	BuyerSig        []byte                     `protobuf:"bytes,6,opt,name=buyerSig,proto3" json:"buyerSig,omitempty"`
	ModeratorSig    []byte                     `protobuf:"bytes,7,opt,name=moderatorSig,proto3" json:"moderatorSig,omitempty"`
	Timestamp       *google_protobuf.Timestamp `protobuf:"bytes,8,opt,name=timestamp" json:"timestamp,omitempty"`
	Overall         uint32                     `protobuf:"varint,9,opt,name=overall" json:"overall,omitempty"`
	Quality         uint32                     `protobuf:"varint,10,opt,name=quality" json:"quality,omitempty"`
	Description     uint32                     `protobuf:"varint,11,opt,name=description" json:"description,omitempty"`
	DeliverySpeed   uint32                     `protobuf:"varint,12,opt,name=deliverySpeed" json:"deliverySpeed,omitempty"`
	CustomerService uint32                     `protobuf:"varint,13,opt,name=customerService" json:"customerService,omitempty"`
	Review          string                     `protobuf:"bytes,14,opt,name=review" json:"review,omitempty"`
}

func (m *Rating_RatingData) Reset()                    { *m = Rating_RatingData{} }
func (m *Rating_RatingData) String() string            { return proto.CompactTextString(m) }
func (*Rating_RatingData) ProtoMessage()               {}
func (*Rating_RatingData) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9, 0} }

func (m *Rating_RatingData) GetRatingKey() []byte {
	if m != nil {
		return m.RatingKey
	}
	return nil
}

func (m *Rating_RatingData) GetVendorID() *ID {
	if m != nil {
		return m.VendorID
	}
	return nil
}

func (m *Rating_RatingData) GetVendorSig() *RatingSignature {
	if m != nil {
		return m.VendorSig
	}
	return nil
}

func (m *Rating_RatingData) GetBuyerID() *ID {
	if m != nil {
		return m.BuyerID
	}
	return nil
}

func (m *Rating_RatingData) GetBuyerName() string {
	if m != nil {
		return m.BuyerName
	}
	return ""
}

func (m *Rating_RatingData) GetBuyerSig() []byte {
	if m != nil {
		return m.BuyerSig
	}
	return nil
}

func (m *Rating_RatingData) GetModeratorSig() []byte {
	if m != nil {
		return m.ModeratorSig
	}
	return nil
}

func (m *Rating_RatingData) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Rating_RatingData) GetOverall() uint32 {
	if m != nil {
		return m.Overall
	}
	return 0
}

func (m *Rating_RatingData) GetQuality() uint32 {
	if m != nil {
		return m.Quality
	}
	return 0
}

func (m *Rating_RatingData) GetDescription() uint32 {
	if m != nil {
		return m.Description
	}
	return 0
}

func (m *Rating_RatingData) GetDeliverySpeed() uint32 {
	if m != nil {
		return m.DeliverySpeed
	}
	return 0
}

func (m *Rating_RatingData) GetCustomerService() uint32 {
	if m != nil {
		return m.CustomerService
	}
	return 0
}

func (m *Rating_RatingData) GetReview() string {
	if m != nil {
		return m.Review
	}
	return ""
}

type Dispute struct {
	Timestamp          *google_protobuf.Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"`
	Claim              string                     `protobuf:"bytes,2,opt,name=claim" json:"claim,omitempty"`
	PayoutAddress      string                     `protobuf:"bytes,3,opt,name=payoutAddress" json:"payoutAddress,omitempty"`
	Outpoints          []*Outpoint                `protobuf:"bytes,4,rep,name=outpoints" json:"outpoints,omitempty"`
	SerializedContract []byte                     `protobuf:"bytes,5,opt,name=serializedContract,proto3" json:"serializedContract,omitempty"`
}

func (m *Dispute) Reset()                    { *m = Dispute{} }
func (m *Dispute) String() string            { return proto.CompactTextString(m) }
func (*Dispute) ProtoMessage()               {}
func (*Dispute) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} }

func (m *Dispute) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Dispute) GetClaim() string {
	if m != nil {
		return m.Claim
	}
	return ""
}

func (m *Dispute) GetPayoutAddress() string {
	if m != nil {
		return m.PayoutAddress
	}
	return ""
}

func (m *Dispute) GetOutpoints() []*Outpoint {
	if m != nil {
		return m.Outpoints
	}
	return nil
}

func (m *Dispute) GetSerializedContract() []byte {
	if m != nil {
		return m.SerializedContract
	}
	return nil
}

type DisputeResolution struct {
	Timestamp           *google_protobuf.Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"`
	OrderId             string                     `protobuf:"bytes,2,opt,name=orderId" json:"orderId,omitempty"`
	ProposedBy          string                     `protobuf:"bytes,3,opt,name=proposedBy" json:"proposedBy,omitempty"`
	Resolution          string                     `protobuf:"bytes,4,opt,name=resolution" json:"resolution,omitempty"`
	Payout              *DisputeResolution_Payout  `protobuf:"bytes,5,opt,name=payout" json:"payout,omitempty"`
	ModeratorRatingSigs [][]byte                   `protobuf:"bytes,6,rep,name=moderatorRatingSigs,proto3" json:"moderatorRatingSigs,omitempty"`
}

func (m *DisputeResolution) Reset()                    { *m = DisputeResolution{} }
func (m *DisputeResolution) String() string            { return proto.CompactTextString(m) }
func (*DisputeResolution) ProtoMessage()               {}
func (*DisputeResolution) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} }

func (m *DisputeResolution) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *DisputeResolution) GetOrderId() string {
	if m != nil {
		return m.OrderId
	}
	return ""
}

func (m *DisputeResolution) GetProposedBy() string {
	if m != nil {
		return m.ProposedBy
	}
	return ""
}

func (m *DisputeResolution) GetResolution() string {
	if m != nil {
		return m.Resolution
	}
	return ""
}

func (m *DisputeResolution) GetPayout() *DisputeResolution_Payout {
	if m != nil {
		return m.Payout
	}
	return nil
}

func (m *DisputeResolution) GetModeratorRatingSigs() [][]byte {
	if m != nil {
		return m.ModeratorRatingSigs
	}
	return nil
}

type DisputeResolution_Payout struct {
	Sigs            []*BitcoinSignature              `protobuf:"bytes,1,rep,name=sigs" json:"sigs,omitempty"`
	Inputs          []*Outpoint                      `protobuf:"bytes,2,rep,name=inputs" json:"inputs,omitempty"`
	BuyerOutput     *DisputeResolution_Payout_Output `protobuf:"bytes,3,opt,name=buyerOutput" json:"buyerOutput,omitempty"`
	VendorOutput    *DisputeResolution_Payout_Output `protobuf:"bytes,4,opt,name=vendorOutput" json:"vendorOutput,omitempty"`
	ModeratorOutput *DisputeResolution_Payout_Output `protobuf:"bytes,5,opt,name=moderatorOutput" json:"moderatorOutput,omitempty"`
}

func (m *DisputeResolution_Payout) Reset()                    { *m = DisputeResolution_Payout{} }
func (m *DisputeResolution_Payout) String() string            { return proto.CompactTextString(m) }
func (*DisputeResolution_Payout) ProtoMessage()               {}
func (*DisputeResolution_Payout) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11, 0} }

func (m *DisputeResolution_Payout) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

func (m *DisputeResolution_Payout) GetInputs() []*Outpoint {
	if m != nil {
		return m.Inputs
	}
	return nil
}

func (m *DisputeResolution_Payout) GetBuyerOutput() *DisputeResolution_Payout_Output {
	if m != nil {
		return m.BuyerOutput
	}
	return nil
}

func (m *DisputeResolution_Payout) GetVendorOutput() *DisputeResolution_Payout_Output {
	if m != nil {
		return m.VendorOutput
	}
	return nil
}

func (m *DisputeResolution_Payout) GetModeratorOutput() *DisputeResolution_Payout_Output {
	if m != nil {
		return m.ModeratorOutput
	}
	return nil
}

type DisputeResolution_Payout_Output struct {
	Script string `protobuf:"bytes,1,opt,name=script" json:"script,omitempty"`
	Amount uint64 `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
}

func (m *DisputeResolution_Payout_Output) Reset()         { *m = DisputeResolution_Payout_Output{} }
func (m *DisputeResolution_Payout_Output) String() string { return proto.CompactTextString(m) }
func (*DisputeResolution_Payout_Output) ProtoMessage()    {}
func (*DisputeResolution_Payout_Output) Descriptor() ([]byte, []int) {
	return fileDescriptor1, []int{11, 0, 0}
}

func (m *DisputeResolution_Payout_Output) GetScript() string {
	if m != nil {
		return m.Script
	}
	return ""
}

func (m *DisputeResolution_Payout_Output) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

type DisputeAcceptance struct {
	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"`
	ClosedBy  string                     `protobuf:"bytes,2,opt,name=closedBy" json:"closedBy,omitempty"`
}

func (m *DisputeAcceptance) Reset()                    { *m = DisputeAcceptance{} }
func (m *DisputeAcceptance) String() string            { return proto.CompactTextString(m) }
func (*DisputeAcceptance) ProtoMessage()               {}
func (*DisputeAcceptance) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{12} }

func (m *DisputeAcceptance) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *DisputeAcceptance) GetClosedBy() string {
	if m != nil {
		return m.ClosedBy
	}
	return ""
}

type Outpoint struct {
	Hash  string `protobuf:"bytes,1,opt,name=hash" json:"hash,omitempty"`
	Index uint32 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"`
	Value uint64 `protobuf:"varint,3,opt,name=value" json:"value,omitempty"`
}

func (m *Outpoint) Reset()                    { *m = Outpoint{} }
func (m *Outpoint) String() string            { return proto.CompactTextString(m) }
func (*Outpoint) ProtoMessage()               {}
func (*Outpoint) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{13} }

func (m *Outpoint) GetHash() string {
	if m != nil {
		return m.Hash
	}
	return ""
}

func (m *Outpoint) GetIndex() uint32 {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *Outpoint) GetValue() uint64 {
	if m != nil {
		return m.Value
	}
	return 0
}

type Refund struct {
	OrderID           string                     `protobuf:"bytes,1,opt,name=orderID" json:"orderID,omitempty"`
	Timestamp         *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
	Sigs              []*BitcoinSignature        `protobuf:"bytes,3,rep,name=sigs" json:"sigs,omitempty"`
	RefundTransaction *Refund_TransactionInfo    `protobuf:"bytes,4,opt,name=refundTransaction" json:"refundTransaction,omitempty"`
	Memo              string                     `protobuf:"bytes,5,opt,name=memo" json:"memo,omitempty"`
}

func (m *Refund) Reset()                    { *m = Refund{} }
func (m *Refund) String() string            { return proto.CompactTextString(m) }
func (*Refund) ProtoMessage()               {}
func (*Refund) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14} }

func (m *Refund) GetOrderID() string {
	if m != nil {
		return m.OrderID
	}
	return ""
}

func (m *Refund) GetTimestamp() *google_protobuf.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Refund) GetSigs() []*BitcoinSignature {
	if m != nil {
		return m.Sigs
	}
	return nil
}

func (m *Refund) GetRefundTransaction() *Refund_TransactionInfo {
	if m != nil {
		return m.RefundTransaction
	}
	return nil
}

func (m *Refund) GetMemo() string {
	if m != nil {
		return m.Memo
	}
	return ""
}

type Refund_TransactionInfo struct {
	Txid  string `protobuf:"bytes,1,opt,name=txid" json:"txid,omitempty"`
	Value uint64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}

func (m *Refund_TransactionInfo) Reset()                    { *m = Refund_TransactionInfo{} }
func (m *Refund_TransactionInfo) String() string            { return proto.CompactTextString(m) }
func (*Refund_TransactionInfo) ProtoMessage()               {}
func (*Refund_TransactionInfo) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14, 0} }

func (m *Refund_TransactionInfo) GetTxid() string {
	if m != nil {
		return m.Txid
	}
	return ""
}

func (m *Refund_TransactionInfo) GetValue() uint64 {
	if m != nil {
		return m.Value
	}
	return 0
}

type ID struct {
	PeerID       string      `protobuf:"bytes,1,opt,name=peerID" json:"peerID,omitempty"`
	BlockchainID string      `protobuf:"bytes,2,opt,name=blockchainID" json:"blockchainID,omitempty"`
	Pubkeys      *ID_Pubkeys `protobuf:"bytes,3,opt,name=pubkeys" json:"pubkeys,omitempty"`
	BitcoinSig   []byte      `protobuf:"bytes,4,opt,name=bitcoinSig,proto3" json:"bitcoinSig,omitempty"`
}

func (m *ID) Reset()                    { *m = ID{} }
func (m *ID) String() string            { return proto.CompactTextString(m) }
func (*ID) ProtoMessage()               {}
func (*ID) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15} }

func (m *ID) GetPeerID() string {
	if m != nil {
		return m.PeerID
	}
	return ""
}

func (m *ID) GetBlockchainID() string {
	if m != nil {
		return m.BlockchainID
	}
	return ""
}

func (m *ID) GetPubkeys() *ID_Pubkeys {
	if m != nil {
		return m.Pubkeys
	}
	return nil
}

func (m *ID) GetBitcoinSig() []byte {
	if m != nil {
		return m.BitcoinSig
	}
	return nil
}

type ID_Pubkeys struct {
	Identity []byte `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"`
	Bitcoin  []byte `protobuf:"bytes,2,opt,name=bitcoin,proto3" json:"bitcoin,omitempty"`
}

func (m *ID_Pubkeys) Reset()                    { *m = ID_Pubkeys{} }
func (m *ID_Pubkeys) String() string            { return proto.CompactTextString(m) }
func (*ID_Pubkeys) ProtoMessage()               {}
func (*ID_Pubkeys) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15, 0} }

func (m *ID_Pubkeys) GetIdentity() []byte {
	if m != nil {
		return m.Identity
	}
	return nil
}

func (m *ID_Pubkeys) GetBitcoin() []byte {
	if m != nil {
		return m.Bitcoin
	}
	return nil
}

type Signature struct {
	Section        Signature_Section `protobuf:"varint,1,opt,name=section,enum=Signature_Section" json:"section,omitempty"`
	SignatureBytes []byte            `protobuf:"bytes,2,opt,name=signatureBytes,proto3" json:"signatureBytes,omitempty"`
}

func (m *Signature) Reset()                    { *m = Signature{} }
func (m *Signature) String() string            { return proto.CompactTextString(m) }
func (*Signature) ProtoMessage()               {}
func (*Signature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{16} }

func (m *Signature) GetSection() Signature_Section {
	if m != nil {
		return m.Section
	}
	return Signature_LISTING
}

func (m *Signature) GetSignatureBytes() []byte {
	if m != nil {
		return m.SignatureBytes
	}
	return nil
}

type SignedListing struct {
	Listing   *Listing `protobuf:"bytes,1,opt,name=listing" json:"listing,omitempty"`
	Hash      string   `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"`
	Signature []byte   `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (m *SignedListing) Reset()                    { *m = SignedListing{} }
func (m *SignedListing) String() string            { return proto.CompactTextString(m) }
func (*SignedListing) ProtoMessage()               {}
func (*SignedListing) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{17} }

func (m *SignedListing) GetListing() *Listing {
	if m != nil {
		return m.Listing
	}
	return nil
}

func (m *SignedListing) GetHash() string {
	if m != nil {
		return m.Hash
	}
	return ""
}

func (m *SignedListing) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

func init() {
	proto.RegisterType((*RicardianContract)(nil), "RicardianContract")
	proto.RegisterType((*Listing)(nil), "Listing")
	proto.RegisterType((*Listing_Metadata)(nil), "Listing.Metadata")
	proto.RegisterType((*Listing_Item)(nil), "Listing.Item")
	proto.RegisterType((*Listing_Item_Option)(nil), "Listing.Item.Option")
	proto.RegisterType((*Listing_Item_Option_Variant)(nil), "Listing.Item.Option.Variant")
	proto.RegisterType((*Listing_Item_Sku)(nil), "Listing.Item.Sku")
	proto.RegisterType((*Listing_Item_Image)(nil), "Listing.Item.Image")
	proto.RegisterType((*Listing_ShippingOption)(nil), "Listing.ShippingOption")
	proto.RegisterType((*Listing_ShippingOption_Service)(nil), "Listing.ShippingOption.Service")
	proto.RegisterType((*Listing_ShippingOption_ShippingRules)(nil), "Listing.ShippingOption.ShippingRules")
	proto.RegisterType((*Listing_ShippingOption_ShippingRules_Rule)(nil), "Listing.ShippingOption.ShippingRules.Rule")
	proto.RegisterType((*Listing_Tax)(nil), "Listing.Tax")
	proto.RegisterType((*Listing_Coupon)(nil), "Listing.Coupon")
	proto.RegisterType((*Order)(nil), "Order")
	proto.RegisterType((*Order_Shipping)(nil), "Order.Shipping")
	proto.RegisterType((*Order_Item)(nil), "Order.Item")
	proto.RegisterType((*Order_Item_Option)(nil), "Order.Item.Option")
	proto.RegisterType((*Order_Item_ShippingOption)(nil), "Order.Item.ShippingOption")
	proto.RegisterType((*Order_Payment)(nil), "Order.Payment")
	proto.RegisterType((*OrderConfirmation)(nil), "OrderConfirmation")
	proto.RegisterType((*OrderReject)(nil), "OrderReject")
	proto.RegisterType((*RatingSignature)(nil), "RatingSignature")
	proto.RegisterType((*RatingSignature_TransactionMetadata)(nil), "RatingSignature.TransactionMetadata")
	proto.RegisterType((*BitcoinSignature)(nil), "BitcoinSignature")
	proto.RegisterType((*OrderFulfillment)(nil), "OrderFulfillment")
	proto.RegisterType((*OrderFulfillment_PhysicalDelivery)(nil), "OrderFulfillment.PhysicalDelivery")
	proto.RegisterType((*OrderFulfillment_DigitalDelivery)(nil), "OrderFulfillment.DigitalDelivery")
	proto.RegisterType((*OrderFulfillment_Payout)(nil), "OrderFulfillment.Payout")
	proto.RegisterType((*OrderCompletion)(nil), "OrderCompletion")
	proto.RegisterType((*Rating)(nil), "Rating")
	proto.RegisterType((*Rating_RatingData)(nil), "Rating.RatingData")
	proto.RegisterType((*Dispute)(nil), "Dispute")
	proto.RegisterType((*DisputeResolution)(nil), "DisputeResolution")
	proto.RegisterType((*DisputeResolution_Payout)(nil), "DisputeResolution.Payout")
	proto.RegisterType((*DisputeResolution_Payout_Output)(nil), "DisputeResolution.Payout.Output")
	proto.RegisterType((*DisputeAcceptance)(nil), "DisputeAcceptance")
	proto.RegisterType((*Outpoint)(nil), "Outpoint")
	proto.RegisterType((*Refund)(nil), "Refund")
	proto.RegisterType((*Refund_TransactionInfo)(nil), "Refund.TransactionInfo")
	proto.RegisterType((*ID)(nil), "ID")
	proto.RegisterType((*ID_Pubkeys)(nil), "ID.Pubkeys")
	proto.RegisterType((*Signature)(nil), "Signature")
	proto.RegisterType((*SignedListing)(nil), "SignedListing")
	proto.RegisterEnum("Listing_Metadata_ContractType", Listing_Metadata_ContractType_name, Listing_Metadata_ContractType_value)
	proto.RegisterEnum("Listing_Metadata_Format", Listing_Metadata_Format_name, Listing_Metadata_Format_value)
	proto.RegisterEnum("Listing_ShippingOption_ShippingType", Listing_ShippingOption_ShippingType_name, Listing_ShippingOption_ShippingType_value)
	proto.RegisterEnum("Listing_ShippingOption_ShippingRules_RuleType", Listing_ShippingOption_ShippingRules_RuleType_name, Listing_ShippingOption_ShippingRules_RuleType_value)
	proto.RegisterEnum("Order_Payment_Method", Order_Payment_Method_name, Order_Payment_Method_value)
	proto.RegisterEnum("Signature_Section", Signature_Section_name, Signature_Section_value)
}

func init() { proto.RegisterFile("contracts.proto", fileDescriptor1) }

var fileDescriptor1 = []byte{
	// 3218 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xc4, 0x5a, 0xcd, 0x73, 0x1b, 0xc7,
	0x95, 0xd7, 0xe0, 0x1b, 0x8f, 0x20, 0x09, 0xb6, 0x28, 0x09, 0xc6, 0x7a, 0x2d, 0x09, 0x25, 0x6b,
	0x65, 0x59, 0x1e, 0xcb, 0xdc, 0x8b, 0x6a, 0xbd, 0xb5, 0x36, 0x88, 0x01, 0xc5, 0xb1, 0x28, 0x12,
	0x6e, 0x80, 0xf6, 0x7a, 0x2f, 0xac, 0xe1, 0x4c, 0x13, 0x9c, 0xd5, 0x60, 0x06, 0x9e, 0xe9, 0xa1,
	0x88, 0xbd, 0xed, 0x2d, 0x95, 0x4b, 0x2e, 0xa9, 0xf2, 0x21, 0xff, 0x40, 0xee, 0xc9, 0x2d, 0xa7,
	0xe4, 0x94, 0x4b, 0x2e, 0xa9, 0x4a, 0x55, 0x6e, 0x49, 0xe5, 0x9c, 0x4a, 0x25, 0x97, 0xe4, 0x90,
	0x4b, 0xaa, 0xbf, 0xe6, 0x0b, 0xd0, 0x97, 0x53, 0xa9, 0x9c, 0x30, 0xef, 0xf7, 0x5e, 0xf7, 0x74,
	0xbf, 0x7e, 0x9f, 0x3d, 0x80, 0x4d, 0x3b, 0xf0, 0x69, 0x68, 0xd9, 0x34, 0xd2, 0xe7, 0x61, 0x40,
	0x83, 0x2e, 0xb2, 0x83, 0xd8, 0xa7, 0xe1, 0xc2, 0x0e, 0x1c, 0xa2, 0xb0, 0x9b, 0xd3, 0x20, 0x98,
	0x7a, 0xe4, 0x43, 0x4e, 0x9d, 0xc6, 0x67, 0x1f, 0x52, 0x77, 0x46, 0x22, 0x6a, 0xcd, 0xe6, 0x42,
	0xa0, 0xf7, 0xd3, 0x0a, 0x6c, 0x61, 0xd7, 0xb6, 0x42, 0xc7, 0xb5, 0xfc, 0x81, 0x9c, 0x11, 0x3d,
	0x84, 0x8d, 0x0b, 0xe2, 0x3b, 0x41, 0x78, 0xe0, 0x46, 0xd4, 0xf5, 0xa7, 0x51, 0x47, 0xbb, 0x55,
	0xbe, 0xb7, 0xb6, 0xd3, 0xd0, 0x25, 0x80, 0x0b, 0x7c, 0x74, 0x17, 0xe0, 0x34, 0x5e, 0x90, 0xf0,
	0x28, 0x74, 0x48, 0xd8, 0x29, 0xdd, 0xd2, 0xee, 0xad, 0xed, 0xd4, 0x74, 0x4e, 0xe1, 0x0c, 0x07,
	0x1d, 0xc0, 0x0d, 0x31, 0x92, 0x93, 0x83, 0xc0, 0x3f, 0x73, 0xc3, 0x99, 0x45, 0xdd, 0xc0, 0xef,
	0x94, 0xf9, 0x20, 0xa4, 0x2f, 0x71, 0xf0, 0x8b, 0x86, 0x20, 0x13, 0xae, 0x67, 0x58, 0x7b, 0xb1,
	0x77, 0xe6, 0x7a, 0xde, 0x8c, 0xf8, 0xb4, 0x53, 0xe1, 0xeb, 0xdd, 0xd2, 0x8b, 0x0c, 0xfc, 0x82,
	0x01, 0xc8, 0x80, 0xed, 0x74, 0x99, 0x83, 0x60, 0x36, 0xf7, 0x08, 0x5f, 0x55, 0x95, 0xaf, 0xaa,
	0xad, 0x17, 0x70, 0xbc, 0x52, 0x1a, 0xf5, 0xa0, 0xee, 0xb8, 0xd1, 0x3c, 0xa6, 0xa4, 0x53, 0xe3,
	0x03, 0x1b, 0xba, 0x21, 0x68, 0xac, 0x18, 0xe8, 0x53, 0xd8, 0x92, 0x8f, 0x98, 0x44, 0x81, 0x17,
	0xf3, 0xd7, 0xd4, 0xe5, 0xe6, 0x8d, 0x22, 0x07, 0x2f, 0x0b, 0x67, 0x66, 0xe8, 0xdb, 0x36, 0x99,
	0x53, 0xcb, 0xb7, 0x49, 0xa7, 0x91, 0x9f, 0x21, 0xe5, 0xe0, 0x65, 0x61, 0x74, 0x13, 0x6a, 0x21,
	0x39, 0x8b, 0x7d, 0xa7, 0xd3, 0xe4, 0xc3, 0xea, 0x3a, 0xe6, 0x24, 0x96, 0x30, 0xba, 0x0f, 0x10,
	0xb9, 0x53, 0xdf, 0xa2, 0x71, 0x48, 0xa2, 0x0e, 0x70, 0x6d, 0x82, 0x3e, 0x56, 0x10, 0xce, 0x70,
	0x7b, 0x7f, 0xbe, 0x0e, 0x75, 0x69, 0x08, 0x08, 0x41, 0x25, 0xf2, 0xe2, 0x69, 0x47, 0xbb, 0xa5,
	0xdd, 0x6b, 0x62, 0xfe, 0x8c, 0x6e, 0x42, 0x43, 0x28, 0xdd, 0x34, 0xa4, 0x65, 0x94, 0x75, 0xd3,
	0xc0, 0x09, 0x88, 0x3e, 0x80, 0xc6, 0x8c, 0x50, 0xcb, 0xb1, 0xa8, 0x25, 0xad, 0x60, 0x4b, 0x19,
	0x9a, 0xfe, 0x54, 0x32, 0x70, 0x22, 0x82, 0x6e, 0x43, 0xc5, 0xa5, 0x64, 0xd6, 0xa9, 0x70, 0xd1,
	0xf5, 0x44, 0xd4, 0xa4, 0x64, 0x86, 0x39, 0x0b, 0xf5, 0x61, 0x33, 0x3a, 0x77, 0xe7, 0x73, 0xd7,
	0x9f, 0x1e, 0xcd, 0x99, 0xce, 0xa2, 0x4e, 0x95, 0xef, 0xe1, 0x46, 0x22, 0x3d, 0xce, 0xf1, 0x71,
	0x51, 0x1e, 0xf5, 0xa0, 0x4a, 0xad, 0x4b, 0x12, 0x75, 0x6a, 0x7c, 0x60, 0x2b, 0x19, 0x38, 0xb1,
	0x2e, 0xb1, 0x60, 0xa1, 0xf7, 0xa0, 0x6e, 0x07, 0xf1, 0x9c, 0x4d, 0x5f, 0xe7, 0x52, 0x9b, 0x89,
	0xd4, 0x80, 0xe3, 0x58, 0xf1, 0xd1, 0x3b, 0x00, 0xb3, 0xc0, 0x21, 0xa1, 0x45, 0x83, 0x30, 0xea,
	0x34, 0x6e, 0x95, 0xef, 0x35, 0x71, 0x06, 0x41, 0x3a, 0x20, 0x4a, 0xc2, 0x59, 0xd4, 0xf7, 0x9d,
	0x41, 0xe0, 0x3b, 0xae, 0x58, 0x74, 0x93, 0xab, 0x71, 0x05, 0x07, 0xf5, 0xa0, 0x25, 0x8e, 0x6a,
	0x14, 0x78, 0xae, 0xbd, 0xe8, 0x00, 0x97, 0xcc, 0x61, 0xdd, 0x3f, 0x94, 0xa1, 0xa1, 0xf4, 0x87,
	0x3a, 0x50, 0xbf, 0x20, 0x61, 0xc4, 0x8c, 0x8d, 0x1d, 0xce, 0x3a, 0x56, 0x24, 0xda, 0x85, 0x96,
	0x8a, 0x25, 0x93, 0xc5, 0x9c, 0xf0, 0x33, 0xda, 0xd8, 0x79, 0x67, 0xe9, 0x08, 0xf4, 0x41, 0x46,
	0x0a, 0xe7, 0xc6, 0xa0, 0x87, 0x50, 0x3b, 0x0b, 0x98, 0x5b, 0xf2, 0x03, 0xdc, 0xd8, 0xe9, 0x2c,
	0x8f, 0xde, 0xe3, 0x7c, 0x2c, 0xe5, 0xd0, 0x0e, 0xd4, 0xc8, 0xe5, 0xdc, 0x0d, 0x17, 0xf2, 0x1c,
	0xbb, 0xba, 0x88, 0x55, 0xba, 0x8a, 0x55, 0xfa, 0x44, 0xc5, 0x2a, 0x2c, 0x25, 0x99, 0x92, 0x2c,
	0x6e, 0xc4, 0xc4, 0x19, 0xc4, 0x61, 0x48, 0x7c, 0xdb, 0x25, 0xe2, 0x64, 0x9b, 0x78, 0x05, 0x07,
	0xdd, 0x83, 0xcd, 0x79, 0xe8, 0xda, 0xae, 0x3f, 0x95, 0xe0, 0x82, 0xbb, 0x65, 0x13, 0x17, 0x61,
	0xd4, 0x85, 0x86, 0x67, 0xf9, 0xd3, 0xd8, 0x9a, 0x12, 0xee, 0x8b, 0x4d, 0x9c, 0xd0, 0xec, 0xad,
	0x24, 0xb2, 0xc3, 0xe0, 0x39, 0x5b, 0x50, 0x10, 0xd3, 0xfd, 0x20, 0xe6, 0x47, 0xc8, 0x94, 0xb8,
	0x82, 0xd3, 0x1b, 0x41, 0x2b, 0xab, 0x29, 0xb4, 0x05, 0xeb, 0xa3, 0xfd, 0xaf, 0xc6, 0xe6, 0xa0,
	0x7f, 0x70, 0xf2, 0xf8, 0xe8, 0xc8, 0x68, 0x5f, 0x41, 0x6d, 0x68, 0x19, 0xe6, 0x63, 0x73, 0xa2,
	0x10, 0x0d, 0xad, 0x41, 0x7d, 0x3c, 0xc4, 0x5f, 0x98, 0x83, 0x61, 0xbb, 0x84, 0x36, 0x00, 0x06,
	0xf8, 0xe8, 0x4b, 0xe3, 0x64, 0xef, 0xf8, 0xd0, 0x68, 0x97, 0x7b, 0x77, 0xa1, 0x26, 0xb4, 0x87,
	0x36, 0x61, 0x6d, 0xcf, 0xfc, 0xef, 0xa1, 0x71, 0x32, 0xc2, 0x4c, 0xf4, 0x0a, 0x1b, 0xd7, 0x3f,
	0x1e, 0x4c, 0xcc, 0xa3, 0xc3, 0xb6, 0xd6, 0xfd, 0x4d, 0x0d, 0x2a, 0xcc, 0x0b, 0xd0, 0x36, 0x54,
	0xa9, 0x4b, 0x3d, 0x22, 0xfd, 0x50, 0x10, 0xe8, 0x16, 0xac, 0x39, 0x6c, 0xbd, 0x2e, 0x37, 0x71,
	0x7e, 0xce, 0x4d, 0x9c, 0x85, 0xd0, 0x5d, 0xd8, 0x98, 0x87, 0x81, 0x4d, 0xa2, 0xc8, 0xf5, 0xa7,
	0x6c, 0x53, 0xfc, 0x38, 0x9b, 0xb8, 0x80, 0xb2, 0xf9, 0x99, 0x06, 0x09, 0x3f, 0xbb, 0x0a, 0x16,
	0x04, 0x73, 0x7e, 0x3f, 0x3a, 0x7b, 0xce, 0x63, 0x66, 0x03, 0xf3, 0x67, 0x86, 0x51, 0x6b, 0x2a,
	0xbc, 0xa8, 0x89, 0xf9, 0x33, 0x7a, 0x1f, 0x6a, 0xee, 0xcc, 0x9a, 0x12, 0xe5, 0x35, 0x57, 0x73,
	0x2e, 0xac, 0x9b, 0x8c, 0x87, 0xa5, 0x08, 0x73, 0x1c, 0xdb, 0xa2, 0x64, 0x1a, 0x84, 0xec, 0xac,
	0xa5, 0xe3, 0xa4, 0x08, 0x5b, 0xca, 0x34, 0xb4, 0x66, 0xc2, 0x57, 0x4a, 0x58, 0x10, 0xe8, 0x6d,
	0x68, 0xda, 0xca, 0x59, 0xa4, 0x6f, 0xa4, 0x00, 0xd2, 0xa1, 0x1e, 0xc8, 0xb0, 0xb0, 0xc6, 0x57,
	0xb0, 0x9d, 0x5f, 0x81, 0x8c, 0x09, 0x4a, 0x08, 0xbd, 0x0b, 0x95, 0xe8, 0x59, 0x1c, 0x75, 0x5a,
	0x32, 0xab, 0xe4, 0x84, 0xc7, 0xcf, 0x62, 0xcc, 0xd9, 0xdd, 0x9f, 0x69, 0x50, 0x13, 0x43, 0xb9,
	0x2a, 0xac, 0x99, 0xd2, 0x3f, 0x7f, 0x7e, 0x0d, 0xf5, 0x3f, 0x82, 0xc6, 0x85, 0x15, 0xba, 0x96,
	0x4f, 0xa3, 0x4e, 0x99, 0xbf, 0xeb, 0xed, 0x55, 0x0b, 0xd3, 0xbf, 0x10, 0x42, 0x38, 0x91, 0xee,
	0xee, 0x43, 0x5d, 0x82, 0x2b, 0x5f, 0xfd, 0x1e, 0x54, 0xb9, 0x3a, 0x65, 0xfc, 0x5d, 0xa9, 0x70,
	0x21, 0xd1, 0xfd, 0x7f, 0x0d, 0xca, 0xe3, 0x67, 0x31, 0x0b, 0x30, 0x72, 0xf6, 0x41, 0x30, 0x3b,
	0x0d, 0x78, 0x05, 0xb0, 0x8e, 0x73, 0x18, 0xd3, 0xf2, 0x3c, 0x0c, 0x9c, 0xd8, 0xa6, 0x32, 0xb4,
	0x37, 0x71, 0x0a, 0x30, 0x6e, 0x14, 0x87, 0xf6, 0xb9, 0x15, 0x4e, 0x85, 0x1d, 0x95, 0x71, 0x0a,
	0x30, 0x8f, 0xfb, 0x3a, 0xb6, 0x7c, 0xea, 0x52, 0x11, 0x01, 0xca, 0x38, 0xa1, 0xbb, 0xdf, 0x68,
	0x50, 0xe5, 0x8b, 0x62, 0x52, 0x67, 0xae, 0x47, 0x32, 0x1b, 0x4a, 0x68, 0xc6, 0x0b, 0x42, 0x77,
	0xea, 0xfa, 0x96, 0x27, 0x5f, 0x9e, 0xd0, 0xcc, 0x2a, 0xbc, 0xe4, 0xbd, 0x4d, 0x2c, 0x08, 0x74,
	0x1d, 0x6a, 0x33, 0xe2, 0xb8, 0xb1, 0xc8, 0x1d, 0x4d, 0x2c, 0x29, 0x26, 0x1d, 0xcd, 0x2c, 0xcf,
	0xe3, 0x96, 0xdb, 0xc4, 0x82, 0xe0, 0xa6, 0xeb, 0xfa, 0x2a, 0x64, 0xf0, 0xe7, 0xee, 0x8f, 0x6a,
	0xb0, 0x91, 0xcf, 0x1c, 0x2b, 0xf5, 0xfd, 0x08, 0x2a, 0x34, 0x0d, 0xa5, 0x77, 0x5e, 0x90, 0x74,
	0x12, 0x92, 0x07, 0x54, 0x3e, 0x02, 0xdd, 0x85, 0x7a, 0x48, 0xa6, 0xdc, 0x34, 0x99, 0x05, 0x6c,
	0xec, 0xb4, 0x58, 0x2a, 0x61, 0x75, 0xdd, 0x20, 0x70, 0x08, 0x56, 0x4c, 0xf4, 0x04, 0xd6, 0x55,
	0xc6, 0xc2, 0xb1, 0x47, 0x22, 0x19, 0x45, 0xdf, 0x7d, 0xd5, 0xab, 0xb8, 0x30, 0xce, 0x8f, 0x45,
	0x1f, 0x43, 0x23, 0x22, 0xe1, 0x85, 0x6b, 0x13, 0x95, 0x27, 0x6f, 0xbe, 0x70, 0x1e, 0x21, 0x87,
	0x93, 0x01, 0x5d, 0x0b, 0xea, 0x12, 0x5c, 0xa9, 0x8a, 0x24, 0x54, 0x94, 0xb2, 0xa1, 0xe2, 0x01,
	0x6c, 0x91, 0x88, 0xba, 0x33, 0x8b, 0x12, 0xc7, 0x20, 0x9e, 0x7b, 0x41, 0xc2, 0x85, 0x3c, 0xab,
	0x65, 0x46, 0xf7, 0xbb, 0x65, 0x58, 0xcf, 0x6d, 0x00, 0x7d, 0x06, 0x8d, 0x30, 0xf6, 0x08, 0xcf,
	0x57, 0x1a, 0x57, 0xb2, 0xfe, 0x5a, 0x3b, 0xd7, 0xb1, 0x1c, 0x85, 0x93, 0xf1, 0xe8, 0x53, 0xa8,
	0x86, 0x5c, 0x85, 0x25, 0xbe, 0xf5, 0xfb, 0xaf, 0x3f, 0x11, 0x16, 0x03, 0xbb, 0x13, 0xa8, 0x30,
	0x92, 0x59, 0xe4, 0xcc, 0xf5, 0xb1, 0xe5, 0x4f, 0x89, 0x4c, 0xb2, 0x09, 0xcd, 0x79, 0xd6, 0xa5,
	0xe0, 0x95, 0x24, 0x4f, 0xd2, 0xa9, 0x8e, 0xca, 0x19, 0x1d, 0xf5, 0xbe, 0xaf, 0x41, 0x43, 0x2d,
	0x17, 0x5d, 0x83, 0xad, 0xcf, 0x8f, 0xfb, 0x87, 0x13, 0x73, 0xf2, 0xd5, 0x89, 0x61, 0x8e, 0x07,
	0x47, 0xc7, 0x87, 0x93, 0xf6, 0x15, 0xf4, 0x2f, 0x70, 0x63, 0xef, 0xa0, 0x3f, 0x39, 0xd9, 0x1b,
	0x0e, 0x4f, 0x12, 0x3e, 0xee, 0x1f, 0x3e, 0x1e, 0xb6, 0x35, 0xf4, 0x16, 0x5c, 0x4b, 0x98, 0x5f,
	0x0e, 0xcd, 0xc7, 0xfb, 0x13, 0xc9, 0x2a, 0x31, 0xd6, 0xe0, 0xe8, 0xe9, 0xae, 0x79, 0x38, 0x34,
	0x4e, 0xc6, 0xfb, 0xe6, 0x68, 0x64, 0x1e, 0x3e, 0x3e, 0xe9, 0x1b, 0x46, 0xbb, 0x8c, 0xde, 0x81,
	0xee, 0x32, 0x6b, 0x7c, 0xbc, 0x3b, 0xc1, 0xfd, 0xc1, 0xa4, 0x5d, 0xe9, 0x7d, 0x04, 0xad, 0xac,
	0xdd, 0xb2, 0x5c, 0x76, 0x70, 0xc4, 0x72, 0xdb, 0xc8, 0x1c, 0x3c, 0x39, 0x1e, 0xb5, 0xaf, 0x14,
	0x93, 0x94, 0xd6, 0xfd, 0x9e, 0x06, 0xe5, 0x89, 0x75, 0xc9, 0x6a, 0x10, 0x6a, 0x5d, 0x26, 0x87,
	0xd6, 0xc4, 0x8a, 0x44, 0x0f, 0x00, 0xa8, 0x75, 0x89, 0xa5, 0xe5, 0x97, 0x56, 0x58, 0x7e, 0x86,
	0xcf, 0x22, 0x29, 0xb5, 0x2e, 0xd5, 0x2a, 0xb8, 0xd6, 0x1a, 0x38, 0x0b, 0xb1, 0xac, 0x31, 0x27,
	0xa1, 0x4d, 0x7c, 0xca, 0xa2, 0x5e, 0x85, 0xa7, 0x86, 0x0c, 0xc2, 0x43, 0xb5, 0x28, 0xd1, 0x5e,
	0x90, 0x2b, 0xb7, 0xa1, 0x72, 0x6e, 0x45, 0xe7, 0x22, 0xb0, 0xec, 0x5f, 0xc1, 0x9c, 0x42, 0x77,
	0xa0, 0xe5, 0xb8, 0x11, 0x6f, 0xb4, 0xd8, 0xa2, 0x84, 0xc5, 0xee, 0x5f, 0xc1, 0x39, 0x14, 0xdd,
	0x87, 0x4d, 0xf9, 0x2a, 0x43, 0xc2, 0x3c, 0xb0, 0x94, 0xf6, 0x35, 0x5c, 0x64, 0xa0, 0xbb, 0xb0,
	0xce, 0x4f, 0x3b, 0x91, 0x64, 0xd1, 0xa6, 0xb2, 0xaf, 0xe1, 0x3c, 0xbc, 0x5b, 0x83, 0x0a, 0x6b,
	0xec, 0x76, 0x01, 0x1a, 0xea, 0x5d, 0xbd, 0x5f, 0x35, 0xa1, 0x2a, 0xda, 0xaa, 0x3b, 0xb0, 0x2e,
	0x2a, 0xbf, 0xbe, 0xe3, 0x84, 0x24, 0x8a, 0xe4, 0x5e, 0xf2, 0x20, 0x0b, 0xc8, 0x02, 0xd8, 0x23,
	0xca, 0x1d, 0x53, 0x00, 0xbd, 0x0f, 0x8d, 0x28, 0xab, 0x51, 0x56, 0xcd, 0xf2, 0xd9, 0x53, 0xc3,
	0x4f, 0x04, 0xd0, 0xbf, 0x42, 0x9d, 0x37, 0x40, 0xa6, 0x21, 0x03, 0x0f, 0x2f, 0xe9, 0x15, 0x86,
	0x1e, 0x41, 0x33, 0xe9, 0x34, 0x65, 0x0b, 0xf5, 0xb2, 0xfa, 0x2e, 0x15, 0x46, 0xb7, 0xa1, 0xca,
	0x2a, 0x78, 0x55, 0x76, 0xaf, 0xc9, 0x25, 0xf0, 0xda, 0x5e, 0x70, 0xd0, 0x3d, 0xa8, 0xcf, 0xad,
	0x05, 0x6f, 0xf3, 0x44, 0xdb, 0xb4, 0x21, 0x85, 0x46, 0x02, 0xc5, 0x8a, 0xcd, 0xac, 0x20, 0xb4,
	0x98, 0x2b, 0x3f, 0x21, 0x0b, 0x51, 0x3b, 0xb4, 0x70, 0x06, 0x41, 0x3b, 0xb0, 0x6d, 0x79, 0x94,
	0x84, 0xbe, 0x45, 0x09, 0x2b, 0xd9, 0x2c, 0x9b, 0x9a, 0xfe, 0x59, 0x20, 0xcb, 0xee, 0x95, 0xbc,
	0xee, 0x2f, 0x35, 0x68, 0x24, 0x66, 0x76, 0x1d, 0x6a, 0x4c, 0x25, 0x93, 0x40, 0x2a, 0x5c, 0x52,
	0xcc, 0xd0, 0x2d, 0x79, 0x12, 0x22, 0x33, 0x29, 0x92, 0x85, 0x48, 0x9b, 0xa5, 0x3c, 0x11, 0xeb,
	0xf8, 0x33, 0x4f, 0x3f, 0xd4, 0xa2, 0x44, 0x66, 0x25, 0x41, 0x70, 0x13, 0x0e, 0x22, 0x6a, 0x79,
	0xdc, 0xd2, 0x44, 0x66, 0xca, 0x20, 0x2c, 0x53, 0xc8, 0x8e, 0x9f, 0xdb, 0xcc, 0x52, 0xa6, 0x90,
	0x4c, 0x96, 0xc8, 0xe5, 0xcb, 0x0f, 0x03, 0xca, 0x6b, 0x2e, 0xde, 0x29, 0x64, 0xb1, 0xee, 0x6f,
	0x4b, 0xb2, 0x70, 0xbc, 0x05, 0x6b, 0x9e, 0x88, 0x7e, 0xfb, 0xcc, 0xfa, 0xc5, 0xae, 0xb2, 0x50,
	0x2e, 0x6f, 0xcb, 0x38, 0xa6, 0x68, 0xf4, 0x20, 0xad, 0xab, 0x44, 0xf9, 0x82, 0x32, 0xc7, 0xb7,
	0x54, 0x55, 0xed, 0xc2, 0x46, 0xbe, 0xe9, 0x4a, 0x3a, 0x81, 0xcc, 0xa0, 0x42, 0x9b, 0x56, 0x18,
	0xc1, 0xd4, 0x39, 0x23, 0xb3, 0x40, 0xaa, 0x87, 0x3f, 0xb3, 0x3d, 0x88, 0xae, 0x8b, 0xe9, 0x41,
	0x55, 0x9e, 0x59, 0xa8, 0xbb, 0xf3, 0xd2, 0x3a, 0x6d, 0x1b, 0xaa, 0x17, 0x96, 0x17, 0x13, 0x79,
	0x74, 0x82, 0xe8, 0xfe, 0xd7, 0x6b, 0x25, 0xfe, 0x0e, 0xd4, 0x65, 0x62, 0x54, 0x07, 0x2f, 0xc9,
	0xee, 0x0f, 0x4b, 0x50, 0x97, 0x06, 0x8a, 0x3e, 0x60, 0x75, 0x08, 0x3d, 0x0f, 0x1c, 0x99, 0xbb,
	0xae, 0xe5, 0x0d, 0x98, 0xf5, 0x4c, 0xe7, 0x81, 0x83, 0xa5, 0x10, 0xf3, 0xdb, 0xa4, 0x53, 0x54,
	0x65, 0x56, 0x02, 0x30, 0x1b, 0xb4, 0x66, 0x3c, 0x74, 0x88, 0xec, 0x21, 0x29, 0x5e, 0x02, 0x9f,
	0x5b, 0xae, 0xcf, 0xc2, 0x86, 0xb4, 0xac, 0x14, 0xc8, 0x5a, 0x68, 0x35, 0x6f, 0xa1, 0xbc, 0xb3,
	0x74, 0x08, 0x99, 0x8d, 0x79, 0x5d, 0x2a, 0xcb, 0x9f, 0x1c, 0xc6, 0x64, 0x92, 0x05, 0x3c, 0x21,
	0x0b, 0x6e, 0x53, 0x2d, 0x9c, 0xc3, 0x7a, 0x8f, 0xa0, 0x26, 0xf6, 0x81, 0xae, 0xc2, 0x66, 0xdf,
	0x30, 0xf0, 0x70, 0x3c, 0x3e, 0xc1, 0xc3, 0xcf, 0x8f, 0x87, 0x63, 0x96, 0xb9, 0x00, 0x6a, 0x86,
	0x89, 0x87, 0x83, 0x49, 0x5b, 0x43, 0xeb, 0xd0, 0x7c, 0x7a, 0x64, 0x0c, 0x71, 0x7f, 0x32, 0x34,
	0xda, 0xa5, 0xde, 0x5f, 0x34, 0xd8, 0x5a, 0xbe, 0xec, 0xe9, 0x40, 0x3d, 0x60, 0xa0, 0x69, 0xa8,
	0xe4, 0x21, 0xc9, 0x7c, 0xb4, 0x29, 0xbd, 0x49, 0xb4, 0x61, 0xfd, 0x8e, 0xd0, 0xb9, 0x0a, 0x9c,
	0xaa, 0xdf, 0xc9, 0xa1, 0xac, 0x91, 0x0c, 0xc9, 0xd7, 0x31, 0x89, 0x28, 0x71, 0xfa, 0x42, 0xd9,
	0xa2, 0xf3, 0x29, 0xc2, 0xe8, 0x3f, 0xa1, 0x2d, 0x02, 0xcc, 0x38, 0xbd, 0x3e, 0x11, 0x25, 0x55,
	0x5b, 0xc7, 0x79, 0x06, 0x5e, 0x92, 0xec, 0x7d, 0x47, 0x83, 0x35, 0x71, 0x69, 0x46, 0xfe, 0x97,
	0xd8, 0xf4, 0x1f, 0xb2, 0x67, 0xd6, 0xcc, 0xb8, 0x53, 0xe5, 0xa1, 0x5b, 0xfa, 0xae, 0x4b, 0xed,
	0xc0, 0xf5, 0xd3, 0x65, 0x71, 0x76, 0xef, 0xf7, 0x1a, 0x6c, 0x16, 0x16, 0x8c, 0x3e, 0xcd, 0x5c,
	0xd4, 0x68, 0xfc, 0x9d, 0x77, 0x8a, 0x9b, 0xd2, 0x27, 0xa1, 0xe5, 0x47, 0x96, 0xcd, 0x8e, 0x6c,
	0xc5, 0xdd, 0x0d, 0xeb, 0x09, 0x94, 0x28, 0x5f, 0x76, 0x0b, 0xa7, 0x40, 0x77, 0x01, 0x57, 0x57,
	0x0c, 0xcf, 0x04, 0xa5, 0x71, 0x7a, 0xb7, 0x94, 0x85, 0x78, 0x66, 0x53, 0x61, 0x5d, 0x4d, 0x9b,
	0x00, 0x4b, 0xd6, 0x5a, 0x5e, 0x61, 0xad, 0x23, 0x68, 0x17, 0x15, 0xc1, 0x22, 0xb0, 0xeb, 0xcf,
	0x63, 0x6a, 0xfa, 0x0e, 0xb9, 0x94, 0x05, 0x5d, 0x06, 0x79, 0xf9, 0x66, 0x7a, 0x3f, 0xae, 0x42,
	0x7b, 0xe9, 0x9a, 0x31, 0x39, 0x50, 0x27, 0x7f, 0xa0, 0x4e, 0x72, 0x73, 0x56, 0xca, 0xdc, 0x9c,
	0xe5, 0x0e, 0xb9, 0xfc, 0x26, 0x87, 0x7c, 0x08, 0xed, 0xf9, 0xf9, 0x22, 0x72, 0x6d, 0xcb, 0x4b,
	0xca, 0x6b, 0x71, 0x27, 0xda, 0x5b, 0xba, 0x13, 0xd5, 0x47, 0x05, 0x49, 0xbc, 0x34, 0x16, 0x3d,
	0x81, 0x4d, 0xc7, 0x9d, 0xba, 0x34, 0x33, 0x9d, 0xb0, 0xea, 0xdb, 0xcb, 0xd3, 0x19, 0x79, 0x41,
	0x5c, 0x1c, 0x89, 0x1e, 0x42, 0x6d, 0x6e, 0x2d, 0x82, 0x98, 0xca, 0x4b, 0xd2, 0xce, 0x8a, 0x25,
	0x71, 0x3e, 0x96, 0x72, 0xe8, 0x3f, 0x60, 0xb3, 0xe0, 0x2b, 0x32, 0xf5, 0x2f, 0x3b, 0x55, 0x51,
	0x90, 0x87, 0xe9, 0x80, 0x8a, 0x0b, 0x52, 0x16, 0xa6, 0x03, 0x4a, 0xba, 0x13, 0x68, 0x17, 0x37,
	0xcd, 0x43, 0x37, 0x0b, 0xf0, 0x24, 0x54, 0x47, 0x23, 0x49, 0x16, 0x25, 0x68, 0x68, 0xd9, 0xcf,
	0x5c, 0x7f, 0x7a, 0x18, 0xcf, 0x4e, 0x89, 0x0a, 0xc2, 0x05, 0xb4, 0xfb, 0x09, 0x6c, 0x16, 0xf6,
	0x8e, 0xda, 0x50, 0x8e, 0x43, 0x4f, 0x4e, 0xc8, 0x1e, 0x59, 0xfe, 0x9c, 0x5b, 0x51, 0xf4, 0x3c,
	0x08, 0x1d, 0xd5, 0xb5, 0x2a, 0x9a, 0xf5, 0xde, 0x35, 0xb1, 0xf3, 0xc4, 0x4b, 0xb5, 0x97, 0x7a,
	0x29, 0x2b, 0xfc, 0x84, 0x8a, 0xfa, 0xb9, 0x72, 0x23, 0x0f, 0xa2, 0xfb, 0xd0, 0x16, 0xc0, 0x1e,
	0x21, 0x23, 0x12, 0xee, 0x2e, 0xa8, 0x6a, 0x35, 0x96, 0xf0, 0xde, 0x4f, 0x34, 0xd8, 0x2c, 0x5e,
	0x6b, 0xbf, 0xd8, 0x6a, 0xbf, 0x7d, 0x18, 0xfa, 0x08, 0x40, 0xbc, 0x7b, 0xfc, 0xd2, 0x60, 0x94,
	0x11, 0x42, 0xb7, 0xa1, 0x2e, 0x0e, 0x37, 0x92, 0xb6, 0x5c, 0x97, 0xa7, 0x8f, 0x15, 0xde, 0xfb,
	0x45, 0x05, 0x6a, 0x02, 0x43, 0x3b, 0xaa, 0xf8, 0x33, 0xd2, 0x70, 0x85, 0xe4, 0x00, 0xf9, 0xc3,
	0x38, 0x38, 0x23, 0xf5, 0x8a, 0xf0, 0xf4, 0xc7, 0x32, 0x00, 0xce, 0x09, 0xa7, 0x41, 0x47, 0x2b,
	0x06, 0x9d, 0x57, 0xde, 0x7a, 0xeb, 0xd0, 0x14, 0xcf, 0x63, 0x57, 0x15, 0xdc, 0xcb, 0xd6, 0x9c,
	0x8a, 0xbc, 0xaa, 0xe4, 0x7e, 0x1b, 0x9a, 0xfc, 0xf1, 0x90, 0x95, 0x24, 0x22, 0xa5, 0xa7, 0x00,
	0xb3, 0x3a, 0x4e, 0xb0, 0x77, 0xd5, 0xf8, 0x52, 0x13, 0x3a, 0x17, 0x1e, 0x19, 0xbf, 0x98, 0xcc,
	0x99, 0x4c, 0xee, 0x9c, 0x1b, 0x6f, 0x72, 0xce, 0xcc, 0x76, 0x2e, 0x48, 0x68, 0x79, 0x1e, 0x2f,
	0xab, 0xd7, 0xb1, 0x22, 0x19, 0xe7, 0xeb, 0xd8, 0xf2, 0x58, 0x21, 0x09, 0x82, 0x23, 0xc9, 0xe2,
	0x4d, 0xd9, 0x1a, 0xe7, 0xe6, 0x6e, 0xca, 0xee, 0xc0, 0xba, 0x23, 0x7d, 0x6c, 0x3c, 0x27, 0xc4,
	0xe9, 0xb4, 0xb8, 0x4c, 0x1e, 0x64, 0x69, 0xdb, 0x8e, 0x23, 0x1a, 0xcc, 0x48, 0x28, 0xaf, 0x28,
	0x3a, 0xeb, 0x5c, 0xae, 0x08, 0xb3, 0x22, 0x2a, 0x24, 0x17, 0x2e, 0x79, 0xde, 0xd9, 0x10, 0x85,
	0xbc, 0xa0, 0x7a, 0xbf, 0xd6, 0xa0, 0x2e, 0xbf, 0xa8, 0xe4, 0x75, 0xa0, 0xbd, 0x89, 0x0e, 0xb6,
	0xa1, 0x6a, 0x7b, 0x96, 0x3b, 0x53, 0x15, 0x25, 0x27, 0x96, 0x7d, 0xb7, 0xbc, 0xca, 0x77, 0xff,
	0x0d, 0x9a, 0x41, 0x4c, 0xe7, 0x81, 0xeb, 0x53, 0x65, 0xf6, 0x4d, 0xfd, 0x48, 0x22, 0x38, 0xe5,
	0x21, 0x1d, 0x50, 0x44, 0x42, 0xd7, 0xf2, 0xdc, 0xff, 0x23, 0x8e, 0xba, 0x80, 0xe6, 0x96, 0xd0,
	0xc2, 0x2b, 0x38, 0xbd, 0x3f, 0x55, 0x60, 0x6b, 0xe9, 0x73, 0xd3, 0xdf, 0xb1, 0xc9, 0x4c, 0x90,
	0x28, 0xe5, 0x83, 0x04, 0xeb, 0x64, 0xc2, 0x60, 0x1e, 0x44, 0xc4, 0xd9, 0x55, 0x9d, 0x4f, 0x06,
	0xe1, 0x6d, 0x5a, 0xfa, 0x29, 0x4c, 0x94, 0xaa, 0x19, 0x04, 0x7d, 0x94, 0xe4, 0x0b, 0xd1, 0x4a,
	0xbe, 0xb5, 0xfc, 0x99, 0xac, 0x98, 0x30, 0x1e, 0xc2, 0xd5, 0xc4, 0x7e, 0x13, 0x9f, 0x12, 0xbd,
	0x40, 0x0b, 0xaf, 0x62, 0x75, 0x7f, 0x57, 0x7a, 0xd3, 0xd8, 0x7b, 0x1b, 0x6a, 0xbc, 0x18, 0x50,
	0x17, 0x47, 0x99, 0x63, 0x91, 0x0c, 0xb4, 0x0b, 0x6b, 0xe2, 0x3b, 0x61, 0x4c, 0xe7, 0x31, 0x95,
	0x5e, 0x7e, 0xeb, 0x85, 0xcb, 0xd7, 0x85, 0x1c, 0xce, 0x0e, 0x42, 0x06, 0xb4, 0xe4, 0x37, 0x4b,
	0x31, 0x49, 0xe5, 0x35, 0x27, 0xc9, 0x8d, 0x42, 0x9f, 0xc1, 0x66, 0xb2, 0x6b, 0x39, 0x51, 0xf5,
	0x35, 0x27, 0x2a, 0x0e, 0xec, 0x3e, 0x82, 0x9a, 0x9c, 0x95, 0xf5, 0xbf, 0xa2, 0x4b, 0x50, 0xfd,
	0xaf, 0xe8, 0x0f, 0xd2, 0x9e, 0xa4, 0x94, 0xed, 0x49, 0x7a, 0x6e, 0x62, 0x72, 0x99, 0x8f, 0x91,
	0xdf, 0xde, 0xe4, 0xba, 0xd0, 0xb0, 0x3d, 0x69, 0x56, 0x32, 0x97, 0x2a, 0xba, 0xf7, 0x19, 0x34,
	0xd4, 0x71, 0xb0, 0x12, 0xe0, 0x3c, 0x6d, 0x67, 0xc5, 0x55, 0xce, 0x36, 0x54, 0x5d, 0x5e, 0xd7,
	0x89, 0x26, 0x56, 0x10, 0x69, 0xef, 0x27, 0x6f, 0xe2, 0x38, 0xd1, 0xfb, 0x41, 0x09, 0x6a, 0xe2,
	0x03, 0xe9, 0x3f, 0xb1, 0x22, 0x47, 0x43, 0xd8, 0x12, 0xb7, 0x35, 0x99, 0x1a, 0x59, 0x5a, 0xc3,
	0x0d, 0xf9, 0xfd, 0x36, 0x5b, 0x7d, 0x9b, 0xfe, 0x59, 0x80, 0x97, 0x47, 0xac, 0x6a, 0x99, 0xbb,
	0x1f, 0xc3, 0x66, 0x61, 0x24, 0xbf, 0xfd, 0xbe, 0x74, 0x55, 0xc2, 0xe7, 0xcf, 0xf9, 0xce, 0x38,
	0xd1, 0xce, 0xcf, 0x35, 0x28, 0x99, 0x06, 0x3b, 0xf3, 0x39, 0xc9, 0x28, 0x46, 0x52, 0x2c, 0xbd,
	0x9c, 0x7a, 0x81, 0xfd, 0x8c, 0xf7, 0x9e, 0xc9, 0x77, 0x82, 0x1c, 0x86, 0xde, 0x85, 0xfa, 0x3c,
	0x3e, 0x7d, 0x46, 0x16, 0x91, 0xf4, 0x91, 0x35, 0xdd, 0x34, 0xf4, 0x91, 0x80, 0xb0, 0xe2, 0xb1,
	0x40, 0x71, 0x9a, 0xe8, 0x86, 0x6f, 0xbd, 0x85, 0x33, 0x48, 0xf7, 0x13, 0xa8, 0xcb, 0x31, 0xcc,
	0x34, 0x5c, 0x87, 0x88, 0x6b, 0x0a, 0x91, 0x9b, 0x13, 0x9a, 0x9d, 0xa1, 0x1c, 0x24, 0x73, 0xbc,
	0x22, 0x7b, 0x7f, 0xd5, 0xa0, 0x99, 0x56, 0x8e, 0x0f, 0x58, 0x33, 0x2f, 0xd4, 0x2c, 0xfa, 0x74,
	0x94, 0x7e, 0x01, 0xd7, 0xc7, 0x82, 0x83, 0x95, 0x08, 0xab, 0x12, 0x93, 0x52, 0x81, 0x55, 0x52,
	0x91, 0x9c, 0xbc, 0x80, 0xf6, 0xbe, 0xd1, 0xa0, 0x2e, 0x07, 0xa3, 0x35, 0xa8, 0x1f, 0x98, 0xe3,
	0x89, 0x79, 0xf8, 0xb8, 0x7d, 0x05, 0x35, 0xa1, 0x7a, 0x84, 0x8d, 0x21, 0x6e, 0x6b, 0xe8, 0x3a,
	0x20, 0xfe, 0x78, 0x32, 0x38, 0x3a, 0xdc, 0x33, 0xf1, 0xd3, 0x3e, 0xff, 0xc0, 0x57, 0x42, 0xd7,
	0x60, 0x4b, 0xe0, 0x7b, 0xc7, 0x07, 0x7b, 0xe6, 0xc1, 0xc1, 0xd3, 0xe1, 0xe1, 0xa4, 0x5d, 0x46,
	0xdb, 0xd0, 0x56, 0xe2, 0x4f, 0x47, 0x07, 0x43, 0x2e, 0x5c, 0x61, 0x93, 0x1b, 0xe6, 0x78, 0x74,
	0x3c, 0x19, 0xb6, 0xab, 0x6c, 0x46, 0x49, 0x9c, 0xe0, 0xe1, 0xf8, 0xe8, 0xe0, 0x98, 0x0b, 0xd5,
	0x58, 0x1b, 0x8e, 0x87, 0xfc, 0x33, 0x63, 0xbd, 0x47, 0x60, 0x9d, 0xed, 0x8f, 0x38, 0xea, 0x6b,
	0x7e, 0x0f, 0xea, 0xb2, 0xcb, 0x92, 0x7e, 0x99, 0xfe, 0x01, 0x44, 0x31, 0x12, 0xdf, 0x2a, 0x65,
	0x7c, 0x2b, 0x57, 0x46, 0x95, 0x0b, 0x65, 0xd4, 0x6e, 0xe5, 0x7f, 0x4a, 0xf3, 0xd3, 0xd3, 0x1a,
	0xf7, 0x89, 0x7f, 0xff, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xae, 0x7f, 0xf8, 0xc8, 0x22,
	0x00, 0x00,
}
