text:
/**
 * Autogenerated by Thrift Compiler (0.9.2)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package com.xiaomi.infra.galaxy.sds.thrift;

import libthrift091.scheme.IScheme;
import libthrift091.scheme.SchemeFactory;
import libthrift091.scheme.StandardScheme;

import libthrift091.scheme.TupleScheme;
import libthrift091.protocol.TTupleProtocol;
import libthrift091.protocol.TProtocolException;
import libthrift091.EncodingUtils;
import libthrift091.TException;
import libthrift091.async.AsyncMethodCallback;
import libthrift091.server.AbstractNonblockingServer.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import javax.annotation.Generated;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
/**
 * 表Schema设置
 */
@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2019-4-24")
public class TableSchema implements libthrift091.TBase<TableSchema, TableSchema._Fields>, java.io.Serializable, Cloneable, Comparable<TableSchema> {
  private static final libthrift091.protocol.TStruct STRUCT_DESC = new libthrift091.protocol.TStruct("TableSchema");

  private static final libthrift091.protocol.TField VERSION_FIELD_DESC = new libthrift091.protocol.TField("version", libthrift091.protocol.TType.I32, (short)1);
  private static final libthrift091.protocol.TField ENTITY_GROUP_FIELD_DESC = new libthrift091.protocol.TField("entityGroup", libthrift091.protocol.TType.STRUCT, (short)2);
  private static final libthrift091.protocol.TField PRIMARY_INDEX_FIELD_DESC = new libthrift091.protocol.TField("primaryIndex", libthrift091.protocol.TType.LIST, (short)3);
  private static final libthrift091.protocol.TField SECONDARY_INDEXES_FIELD_DESC = new libthrift091.protocol.TField("secondaryIndexes", libthrift091.protocol.TType.MAP, (short)4);
  private static final libthrift091.protocol.TField ATTRIBUTES_FIELD_DESC = new libthrift091.protocol.TField("attributes", libthrift091.protocol.TType.MAP, (short)5);
  private static final libthrift091.protocol.TField TTL_FIELD_DESC = new libthrift091.protocol.TField("ttl", libthrift091.protocol.TType.I32, (short)6);
  private static final libthrift091.protocol.TField PRE_SPLITS_FIELD_DESC = new libthrift091.protocol.TField("preSplits", libthrift091.protocol.TType.I32, (short)7);
  private static final libthrift091.protocol.TField STREAMS_FIELD_DESC = new libthrift091.protocol.TField("streams", libthrift091.protocol.TType.MAP, (short)8);
  private static final libthrift091.protocol.TField GLOBAL_SECONDARY_INDEXES_FIELD_DESC = new libthrift091.protocol.TField("globalSecondaryIndexes", libthrift091.protocol.TType.MAP, (short)9);
  private static final libthrift091.protocol.TField ENABLE_TRANSACTION_FIELD_DESC = new libthrift091.protocol.TField("enableTransaction", libthrift091.protocol.TType.BOOL, (short)10);

  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
  static {
    schemes.put(StandardScheme.class, new TableSchemaStandardSchemeFactory());
    schemes.put(TupleScheme.class, new TableSchemaTupleSchemeFactory());
  }

  /**
   * Schema版本号,仅作为输出,作为输入不需要设置
   */
  public int version; // optional
  /**
   * Entity group定义, 不设置表示不开启Entity Group支持。
   * 开启后自动支持应用用户表空间隔离(需配合相应权限设置),
   * 即每个应用用户将看到独立的表空间
   */
  public EntityGroupSpec entityGroup; // optional
  /**
   * 主键定义
   */
  public List<KeySpec> primaryIndex; // required
  /**
   * 二级索引定义
   */
  public Map<String,LocalSecondaryIndexSpec> secondaryIndexes; // optional
  /**
   * 属性定义
   */
  public Map<String,DataType> attributes; // optional
  /**
   * 记录存活时间,单位为秒。-1表示不会自动删除
   */
  public int ttl; // optional
  /**
   * 表初始分片数目,仅支持Entity Group开启hash分布的表,且仅在建表时起作用
   */
  public int preSplits; // optional
  /**
   * stream定义,TopicName => StreamSpec
   */
  public Map<String,StreamSpec> streams; // optional
  /**
   * 全局二级索引定义
   */
  public Map<String,GlobalSecondaryIndexSpec> globalSecondaryIndexes; // optional
  /**
   * 支持事务
   */
  public boolean enableTransaction; // optional

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements libthrift091.TFieldIdEnum {
    /**
     * Schema版本号,仅作为输出,作为输入不需要设置
     */
    VERSION((short)1, "version"),
    /**
     * Entity group定义, 不设置表示不开启Entity Group支持。
     * 开启后自动支持应用用户表空间隔离(需配合相应权限设置),
     * 即每个应用用户将看到独立的表空间
     */
    ENTITY_GROUP((short)2, "entityGroup"),
    /**
     * 主键定义
     */
    PRIMARY_INDEX((short)3, "primaryIndex"),
    /**
     * 二级索引定义
     */
    SECONDARY_INDEXES((short)4, "secondaryIndexes"),
    /**
     * 属性定义
     */
    ATTRIBUTES((short)5, "attributes"),
    /**
     * 记录存活时间,单位为秒。-1表示不会自动删除
     */
    TTL((short)6, "ttl"),
    /**
     * 表初始分片数目,仅支持Entity Group开启hash分布的表,且仅在建表时起作用
     */
    PRE_SPLITS((short)7, "preSplits"),
    /**
     * stream定义,TopicName => StreamSpec
     */
    STREAMS((short)8, "streams"),
    /**
     * 全局二级索引定义
     */
    GLOBAL_SECONDARY_INDEXES((short)9, "globalSecondaryIndexes"),
    /**
     * 支持事务
     */
    ENABLE_TRANSACTION((short)10, "enableTransaction");

    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();

    static {
      for (_Fields field : EnumSet.allOf(_Fields.class)) {
        byName.put(field.getFieldName(), field);
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // VERSION
          return VERSION;
        case 2: // ENTITY_GROUP
          return ENTITY_GROUP;
        case 3: // PRIMARY_INDEX
          return PRIMARY_INDEX;
        case 4: // SECONDARY_INDEXES
          return SECONDARY_INDEXES;
        case 5: // ATTRIBUTES
          return ATTRIBUTES;
        case 6: // TTL
          return TTL;
        case 7: // PRE_SPLITS
          return PRE_SPLITS;
        case 8: // STREAMS
          return STREAMS;
        case 9: // GLOBAL_SECONDARY_INDEXES
          return GLOBAL_SECONDARY_INDEXES;
        case 10: // ENABLE_TRANSACTION
          return ENABLE_TRANSACTION;
        default:
          return null;
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, throwing an exception
     * if it is not found.
     */
    public static _Fields findByThriftIdOrThrow(int fieldId) {
      _Fields fields = findByThriftId(fieldId);
      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
      return fields;
    }

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    public static _Fields findByName(String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final String _fieldName;

    _Fields(short thriftId, String fieldName) {
      _thriftId = thriftId;
      _fieldName = fieldName;
    }

    public short getThriftFieldId() {
      return _thriftId;
    }

    public String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __VERSION_ISSET_ID = 0;
  private static final int __TTL_ISSET_ID = 1;
  private static final int __PRESPLITS_ISSET_ID = 2;
  private static final int __ENABLETRANSACTION_ISSET_ID = 3;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.VERSION,_Fields.ENTITY_GROUP,_Fields.SECONDARY_INDEXES,_Fields.ATTRIBUTES,_Fields.TTL,_Fields.PRE_SPLITS,_Fields.STREAMS,_Fields.GLOBAL_SECONDARY_INDEXES,_Fields.ENABLE_TRANSACTION};
  public static final Map<_Fields, libthrift091.meta_data.FieldMetaData> metaDataMap;
  static {
    Map<_Fields, libthrift091.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, libthrift091.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.VERSION, new libthrift091.meta_data.FieldMetaData("version", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.I32)));
    tmpMap.put(_Fields.ENTITY_GROUP, new libthrift091.meta_data.FieldMetaData("entityGroup", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.StructMetaData(libthrift091.protocol.TType.STRUCT, EntityGroupSpec.class)));
    tmpMap.put(_Fields.PRIMARY_INDEX, new libthrift091.meta_data.FieldMetaData("primaryIndex", libthrift091.TFieldRequirementType.DEFAULT,
        new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.LIST        , "IndexSpec")));
    tmpMap.put(_Fields.SECONDARY_INDEXES, new libthrift091.meta_data.FieldMetaData("secondaryIndexes", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.MapMetaData(libthrift091.protocol.TType.MAP,
            new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.STRING),
            new libthrift091.meta_data.StructMetaData(libthrift091.protocol.TType.STRUCT, LocalSecondaryIndexSpec.class))));
    tmpMap.put(_Fields.ATTRIBUTES, new libthrift091.meta_data.FieldMetaData("attributes", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.MapMetaData(libthrift091.protocol.TType.MAP,
            new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.STRING),
            new libthrift091.meta_data.EnumMetaData(libthrift091.protocol.TType.ENUM, DataType.class))));
    tmpMap.put(_Fields.TTL, new libthrift091.meta_data.FieldMetaData("ttl", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.I32)));
    tmpMap.put(_Fields.PRE_SPLITS, new libthrift091.meta_data.FieldMetaData("preSplits", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.I32)));
    tmpMap.put(_Fields.STREAMS, new libthrift091.meta_data.FieldMetaData("streams", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.MapMetaData(libthrift091.protocol.TType.MAP,
            new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.STRING),
            new libthrift091.meta_data.StructMetaData(libthrift091.protocol.TType.STRUCT, StreamSpec.class))));
    tmpMap.put(_Fields.GLOBAL_SECONDARY_INDEXES, new libthrift091.meta_data.FieldMetaData("globalSecondaryIndexes", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.MapMetaData(libthrift091.protocol.TType.MAP,
            new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.STRING),
            new libthrift091.meta_data.StructMetaData(libthrift091.protocol.TType.STRUCT, GlobalSecondaryIndexSpec.class))));
    tmpMap.put(_Fields.ENABLE_TRANSACTION, new libthrift091.meta_data.FieldMetaData("enableTransaction", libthrift091.TFieldRequirementType.OPTIONAL,
        new libthrift091.meta_data.FieldValueMetaData(libthrift091.protocol.TType.BOOL)));
    metaDataMap = Collections.unmodifiableMap(tmpMap);
    libthrift091.meta_data.FieldMetaData.addStructMetaDataMap(TableSchema.class, metaDataMap);
  }

  public TableSchema() {
    this.ttl = -1;

    this.preSplits = 1;

  }

  public TableSchema(
    List<KeySpec> primaryIndex)
  {
    this();
    this.primaryIndex = primaryIndex;
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TableSchema(TableSchema other) {
    __isset_bitfield = other.__isset_bitfield;
    this.version = other.version;
    if (other.isSetEntityGroup()) {
      this.entityGroup = new EntityGroupSpec(other.entityGroup);
    }
    if (other.isSetPrimaryIndex()) {
      this.primaryIndex = other.primaryIndex;
    }
    if (other.isSetSecondaryIndexes()) {
      Map<String,LocalSecondaryIndexSpec> __this__secondaryIndexes = new HashMap<String,LocalSecondaryIndexSpec>(other.secondaryIndexes.size());
      for (Map.Entry<String, LocalSecondaryIndexSpec> other_element : other.secondaryIndexes.entrySet()) {

        String other_element_key = other_element.getKey();
        LocalSecondaryIndexSpec other_element_value = other_element.getValue();

        String __this__secondaryIndexes_copy_key = other_element_key;

        LocalSecondaryIndexSpec __this__secondaryIndexes_copy_value = new LocalSecondaryIndexSpec(other_element_value);

        __this__secondaryIndexes.put(__this__secondaryIndexes_copy_key, __this__secondaryIndexes_copy_value);
      }
      this.secondaryIndexes = __this__secondaryIndexes;
    }
    if (other.isSetAttributes()) {
      Map<String,DataType> __this__attributes = new HashMap<String,DataType>(other.attributes.size());
      for (Map.Entry<String, DataType> other_element : other.attributes.entrySet()) {

        String other_element_key = other_element.getKey();
        DataType other_element_value = other_element.getValue();

        String __this__attributes_copy_key = other_element_key;

        DataType __this__attributes_copy_value = other_element_value;

        __this__attributes.put(__this__attributes_copy_key, __this__attributes_copy_value);
      }
      this.attributes = __this__attributes;
    }
    this.ttl = other.ttl;
    this.preSplits = other.preSplits;
    if (other.isSetStreams()) {
      Map<String,StreamSpec> __this__streams = new HashMap<String,StreamSpec>(other.streams.size());
      for (Map.Entry<String, StreamSpec> other_element : other.streams.entrySet()) {

        String other_element_key = other_element.getKey();
        StreamSpec other_element_value = other_element.getValue();

        String __this__streams_copy_key = other_element_key;

        StreamSpec __this__streams_copy_value = new StreamSpec(other_element_value);

        __this__streams.put(__this__streams_copy_key, __this__streams_copy_value);
      }
      this.streams = __this__streams;
    }
    if (other.isSetGlobalSecondaryIndexes()) {
      Map<String,GlobalSecondaryIndexSpec> __this__globalSecondaryIndexes = new HashMap<String,GlobalSecondaryIndexSpec>(other.globalSecondaryIndexes.size());
      for (Map.Entry<String, GlobalSecondaryIndexSpec> other_element : other.globalSecondaryIndexes.entrySet()) {

        String other_element_key = other_element.getKey();
        GlobalSecondaryIndexSpec other_element_value = other_element.getValue();

        String __this__globalSecondaryIndexes_copy_key = other_element_key;

        GlobalSecondaryIndexSpec __this__globalSecondaryIndexes_copy_value = new GlobalSecondaryIndexSpec(other_element_value);

        __this__globalSecondaryIndexes.put(__this__globalSecondaryIndexes_copy_key, __this__globalSecondaryIndexes_copy_value);
      }
      this.globalSecondaryIndexes = __this__globalSecondaryIndexes;
    }
    this.enableTransaction = other.enableTransaction;
  }

  public TableSchema deepCopy() {
    return new TableSchema(this);
  }

  @Override
  public void clear() {
    setVersionIsSet(false);
    this.version = 0;
    this.entityGroup = null;
    this.primaryIndex = null;
    this.secondaryIndexes = null;
    this.attributes = null;
    this.ttl = -1;

    this.preSplits = 1;

    this.streams = null;
    this.globalSecondaryIndexes = null;
    setEnableTransactionIsSet(false);
    this.enableTransaction = false;
  }

  /**
   * Schema版本号,仅作为输出,作为输入不需要设置
   */
  public int getVersion() {
    return this.version;
  }

  /**
   * Schema版本号,仅作为输出,作为输入不需要设置
   */
  public TableSchema setVersion(int version) {
    this.version = version;
    setVersionIsSet(true);
    return this;
  }

  public void unsetVersion() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VERSION_ISSET_ID);
  }

  /** Returns true if field version is set (has been assigned a value) and false otherwise */
  public boolean isSetVersion() {
    return EncodingUtils.testBit(__isset_bitfield, __VERSION_ISSET_ID);
  }

  public void setVersionIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VERSION_ISSET_ID, value);
  }

  /**
   * Entity group定义, 不设置表示不开启Entity Group支持。
   * 开启后自动支持应用用户表空间隔离(需配合相应权限设置),
   * 即每个应用用户将看到独立的表空间
   */
  public EntityGroupSpec getEntityGroup() {
    return this.entityGroup;
  }

  /**
   * Entity group定义, 不设置表示不开启Entity Group支持。
   * 开启后自动支持应用用户表空间隔离(需配合相应权限设置),
   * 即每个应用用户将看到独立的表空间
   */
  public TableSchema setEntityGroup(EntityGroupSpec entityGroup) {
    this.entityGroup = entityGroup;
    return this;
  }

  public void unsetEntityGroup() {
    this.entityGroup = null;
  }

  /** Returns true if field entityGroup is set (has been assigned a value) and false otherwise */
  public boolean isSetEntityGroup() {
    return this.entityGroup != null;
  }

  public void setEntityGroupIsSet(boolean value) {
    if (!value) {
      this.entityGroup = null;
    }
  }

  public int getPrimaryIndexSize() {
    return (this.primaryIndex == null) ? 0 : this.primaryIndex.size();
  }

  public java.util.Iterator<KeySpec> getPrimaryIndexIterator() {
    return (this.primaryIndex == null) ? null : this.primaryIndex.iterator();
  }

  public void addToPrimaryIndex(KeySpec elem) {
    if (this.primaryIndex == null) {
      this.primaryIndex = new ArrayList<KeySpec>();
    }
    this.primaryIndex.add(elem);
  }

  /**
   * 主键定义
   */
  public List<KeySpec> getPrimaryIndex() {
    return this.primaryIndex;
  }

  /**
   * 主键定义
   */
  public TableSchema setPrimaryIndex(List<KeySpec> primaryIndex) {
    this.primaryIndex = primaryIndex;
    return this;
  }

  public void unsetPrimaryIndex() {
    this.primaryIndex = null;
  }

  /** Returns true if field primaryIndex is set (has been assigned a value) and false otherwise */
  public boolean isSetPrimaryIndex() {
    return this.primaryIndex != null;
  }

  public void setPrimaryIndexIsSet(boolean value) {
    if (!value) {
      this.primaryIndex = null;
    }
  }

  public int getSecondaryIndexesSize() {
    return (this.secondaryIndexes == null) ? 0 : this.secondaryIndexes.size();
  }

  public void putToSecondaryIndexes(String key, LocalSecondaryIndexSpec val) {
    if (this.secondaryIndexes == null) {
      this.secondaryIndexes = new HashMap<String,LocalSecondaryIndexSpec>();
    }
    this.secondaryIndexes.put(key, val);
  }

  /**
   * 二级索引定义
   */
  public Map<String,LocalSecondaryIndexSpec> getSecondaryIndexes() {
    return this.secondaryIndexes;
  }

  /**
   * 二级索引定义
   */
  public TableSchema setSecondaryIndexes(Map<String,LocalSecondaryIndexSpec> secondaryIndexes) {
    this.secondaryIndexes = secondaryIndexes;
    return this;
  }

  public void unsetSecondaryIndexes() {
    this.secondaryIndexes = null;
  }

  /** Returns true if field secondaryIndexes is set (has been assigned a value) and false otherwise */
  public boolean isSetSecondaryIndexes() {
    return this.secondaryIndexes != null;
  }

  public void setSecondaryIndexesIsSet(boolean value) {
    if (!value) {
      this.secondaryIndexes = null;
    }
  }

  public int getAttributesSize() {
    return (this.attributes == null) ? 0 : this.attributes.size();
  }

  public void putToAttributes(String key, DataType val) {
    if (this.attributes == null) {
      this.attributes = new HashMap<String,DataType>();
    }
    this.attributes.put(key, val);
  }

  /**
   * 属性定义
   */
  public Map<String,DataType> getAttributes() {
    return this.attributes;
  }

  /**
   * 属性定义
   */
  public TableSchema setAttributes(Map<String,DataType> attributes) {
    this.attributes = attributes;
    return this;
  }

  public void unsetAttributes() {
    this.attributes = null;
  }

  /** Returns true if field attributes is set (has been assigned a value) and false otherwise */
  public boolean isSetAttributes() {
    return this.attributes != null;
  }

  public void setAttributesIsSet(boolean value) {
    if (!value) {
      this.attributes = null;
    }
  }

  /**
   * 记录存活时间,单位为秒。-1表示不会自动删除
   */
  public int getTtl() {
    return this.ttl;
  }

  /**
   * 记录存活时间,单位为秒。-1表示不会自动删除
   */
  public TableSchema setTtl(int ttl) {
    this.ttl = ttl;
    setTtlIsSet(true);
    return this;
  }

  public void unsetTtl() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TTL_ISSET_ID);
  }

  /** Returns true if field ttl is set (has been assigned a value) and false otherwise */
  public boolean isSetTtl() {
    return EncodingUtils.testBit(__isset_bitfield, __TTL_ISSET_ID);
  }

  public void setTtlIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TTL_ISSET_ID, value);
  }

  /**
   * 表初始分片数目,仅支持Entity Group开启hash分布的表,且仅在建表时起作用
   */
  public int getPreSplits() {
    return this.preSplits;
  }

  /**
   * 表初始分片数目,仅支持Entity Group开启hash分布的表,且仅在建表时起作用
   */
  public TableSchema setPreSplits(int preSplits) {
    this.preSplits = preSplits;
    setPreSplitsIsSet(true);
    return this;
  }

  public void unsetPreSplits() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PRESPLITS_ISSET_ID);
  }

  /** Returns true if field preSplits is set (has been assigned a value) and false otherwise */
  public boolean isSetPreSplits() {
    return EncodingUtils.testBit(__isset_bitfield, __PRESPLITS_ISSET_ID);
  }

  public void setPreSplitsIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PRESPLITS_ISSET_ID, value);
  }

  public int getStreamsSize() {
    return (this.streams == null) ? 0 : this.streams.size();
  }

  public void putToStreams(String key, StreamSpec val) {
    if (this.streams == null) {
      this.streams = new HashMap<String,StreamSpec>();
    }
    this.streams.put(key, val);
  }

  /**
   * stream定义,TopicName => StreamSpec
   */
  public Map<String,StreamSpec> getStreams() {
    return this.streams;
  }

  /**
   * stream定义,TopicName => StreamSpec
   */
  public TableSchema setStreams(Map<String,StreamSpec> streams) {
    this.streams = streams;
    return this;
  }

  public void unsetStreams() {
    this.streams = null;
  }

  /** Returns true if field streams is set (has been assigned a value) and false otherwise */
  public boolean isSetStreams() {
    return this.streams != null;
  }

  public void setStreamsIsSet(boolean value) {
    if (!value) {
      this.streams = null;
    }
  }

  public int getGlobalSecondaryIndexesSize() {
    return (this.globalSecondaryIndexes == null) ? 0 : this.globalSecondaryIndexes.size();
  }

  public void putToGlobalSecondaryIndexes(String key, GlobalSecondaryIndexSpec val) {
    if (this.globalSecondaryIndexes == null) {
      this.globalSecondaryIndexes = new HashMap<String,GlobalSecondaryIndexSpec>();
    }
    this.globalSecondaryIndexes.put(key, val);
  }

  /**
   * 全局二级索引定义
   */
  public Map<String,GlobalSecondaryIndexSpec> getGlobalSecondaryIndexes() {
    return this.globalSecondaryIndexes;
  }

  /**
   * 全局二级索引定义
   */
  public TableSchema setGlobalSecondaryIndexes(Map<String,GlobalSecondaryIndexSpec> globalSecondaryIndexes) {
    this.globalSecondaryIndexes = globalSecondaryIndexes;
    return this;
  }

  public void unsetGlobalSecondaryIndexes() {
    this.globalSecondaryIndexes = null;
  }

  /** Returns true if field globalSecondaryIndexes is set (has been assigned a value) and false otherwise */
  public boolean isSetGlobalSecondaryIndexes() {
    return this.globalSecondaryIndexes != null;
  }

  public void setGlobalSecondaryIndexesIsSet(boolean value) {
    if (!value) {
      this.globalSecondaryIndexes = null;
    }
  }

  /**
   * 支持事务
   */
  public boolean isEnableTransaction() {
    return this.enableTransaction;
  }

  /**
   * 支持事务
   */
  public TableSchema setEnableTransaction(boolean enableTransaction) {
    this.enableTransaction = enableTransaction;
    setEnableTransactionIsSet(true);
    return this;
  }

  public void unsetEnableTransaction() {
    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENABLETRANSACTION_ISSET_ID);
  }

  /** Returns true if field enableTransaction is set (has been assigned a value) and false otherwise */
  public boolean isSetEnableTransaction() {
    return EncodingUtils.testBit(__isset_bitfield, __ENABLETRANSACTION_ISSET_ID);
  }

  public void setEnableTransactionIsSet(boolean value) {
    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENABLETRANSACTION_ISSET_ID, value);
  }

  public void setFieldValue(_Fields field, Object value) {
    switch (field) {
    case VERSION:
      if (value == null) {
        unsetVersion();
      } else {
        setVersion((Integer)value);
      }
      break;

    case ENTITY_GROUP:
      if (value == null) {
        unsetEntityGroup();
      } else {
        setEntityGroup((EntityGroupSpec)value);
      }
      break;

    case PRIMARY_INDEX:
      if (value == null) {
        unsetPrimaryIndex();
      } else {
        setPrimaryIndex((List<KeySpec>)value);
      }
      break;

    case SECONDARY_INDEXES:
      if (value == null) {
        unsetSecondaryIndexes();
      } else {
        setSecondaryIndexes((Map<String,LocalSecondaryIndexSpec>)value);
      }
      break;

    case ATTRIBUTES:
      if (value == null) {
        unsetAttributes();
      } else {
        setAttributes((Map<String,DataType>)value);
      }
      break;

    case TTL:
      if (value == null) {
        unsetTtl();
      } else {
        setTtl((Integer)value);
      }
      break;

    case PRE_SPLITS:
      if (value == null) {
        unsetPreSplits();
      } else {
        setPreSplits((Integer)value);
      }
      break;

    case STREAMS:
      if (value == null) {
        unsetStreams();
      } else {
        setStreams((Map<String,StreamSpec>)value);
      }
      break;

    case GLOBAL_SECONDARY_INDEXES:
      if (value == null) {
        unsetGlobalSecondaryIndexes();
      } else {
        setGlobalSecondaryIndexes((Map<String,GlobalSecondaryIndexSpec>)value);
      }
      break;

    case ENABLE_TRANSACTION:
      if (value == null) {
        unsetEnableTransaction();
      } else {
        setEnableTransaction((Boolean)value);
      }
      break;

    }
  }

  public Object getFieldValue(_Fields field) {
    switch (field) {
    case VERSION:
      return Integer.valueOf(getVersion());

    case ENTITY_GROUP:
      return getEntityGroup();

    case PRIMARY_INDEX:
      return getPrimaryIndex();

    case SECONDARY_INDEXES:
      return getSecondaryIndexes();

    case ATTRIBUTES:
      return getAttributes();

    case TTL:
      return Integer.valueOf(getTtl());

    case PRE_SPLITS:
      return Integer.valueOf(getPreSplits());

    case STREAMS:
      return getStreams();

    case GLOBAL_SECONDARY_INDEXES:
      return getGlobalSecondaryIndexes();

    case ENABLE_TRANSACTION:
      return Boolean.valueOf(isEnableTransaction());

    }
    throw new IllegalStateException();
  }

  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
  public boolean isSet(_Fields field) {
    if (field == null) {
      throw new IllegalArgumentException();
    }

    switch (field) {
    case VERSION:
      return isSetVersion();
    case ENTITY_GROUP:
      return isSetEntityGroup();
    case PRIMARY_INDEX:
      return isSetPrimaryIndex();
    case SECONDARY_INDEXES:
      return isSetSecondaryIndexes();
    case ATTRIBUTES:
      return isSetAttributes();
    case TTL:
      return isSetTtl();
    case PRE_SPLITS:
      return isSetPreSplits();
    case STREAMS:
      return isSetStreams();
    case GLOBAL_SECONDARY_INDEXES:
      return isSetGlobalSecondaryIndexes();
    case ENABLE_TRANSACTION:
      return isSetEnableTransaction();
    }
    throw new IllegalStateException();
  }

  @Override
  public boolean equals(Object that) {
    if (that == null)
      return false;
    if (that instanceof TableSchema)
      return this.equals((TableSchema)that);
    return false;
  }

  public boolean equals(TableSchema that) {
    if (that == null)
      return false;

    boolean this_present_version = true && this.isSetVersion();
    boolean that_present_version = true && that.isSetVersion();
    if (this_present_version || that_present_version) {
      if (!(this_present_version && that_present_version))
        return false;
      if (this.version != that.version)
        return false;
    }

    boolean this_present_entityGroup = true && this.isSetEntityGroup();
    boolean that_present_entityGroup = true && that.isSetEntityGroup();
    if (this_present_entityGroup || that_present_entityGroup) {
      if (!(this_present_entityGroup && that_present_entityGroup))
        return false;
      if (!this.entityGroup.equals(that.entityGroup))
        return false;
    }

    boolean this_present_primaryIndex = true && this.isSetPrimaryIndex();
    boolean that_present_primaryIndex = true && that.isSetPrimaryIndex();
    if (this_present_primaryIndex || that_present_primaryIndex) {
      if (!(this_present_primaryIndex && that_present_primaryIndex))
        return false;
      if (!this.primaryIndex.equals(that.primaryIndex))
        return false;
    }

    boolean this_present_secondaryIndexes = true && this.isSetSecondaryIndexes();
    boolean that_present_secondaryIndexes = true && that.isSetSecondaryIndexes();
    if (this_present_secondaryIndexes || that_present_secondaryIndexes) {
      if (!(this_present_secondaryIndexes && that_present_secondaryIndexes))
        return false;
      if (!this.secondaryIndexes.equals(that.secondaryIndexes))
        return false;
    }

    boolean this_present_attributes = true && this.isSetAttributes();
    boolean that_present_attributes = true && that.isSetAttributes();
    if (this_present_attributes || that_present_attributes) {
      if (!(this_present_attributes && that_present_attributes))
        return false;
      if (!this.attributes.equals(that.attributes))
        return false;
    }

    boolean this_present_ttl = true && this.isSetTtl();
    boolean that_present_ttl = true && that.isSetTtl();
    if (this_present_ttl || that_present_ttl) {
      if (!(this_present_ttl && that_present_ttl))
        return false;
      if (this.ttl != that.ttl)
        return false;
    }

    boolean this_present_preSplits = true && this.isSetPreSplits();
    boolean that_present_preSplits = true && that.isSetPreSplits();
    if (this_present_preSplits || that_present_preSplits) {
      if (!(this_present_preSplits && that_present_preSplits))
        return false;
      if (this.preSplits != that.preSplits)
        return false;
    }

    boolean this_present_streams = true && this.isSetStreams();
    boolean that_present_streams = true && that.isSetStreams();
    if (this_present_streams || that_present_streams) {
      if (!(this_present_streams && that_present_streams))
        return false;
      if (!this.streams.equals(that.streams))
        return false;
    }

    boolean this_present_globalSecondaryIndexes = true && this.isSetGlobalSecondaryIndexes();
    boolean that_present_globalSecondaryIndexes = true && that.isSetGlobalSecondaryIndexes();
    if (this_present_globalSecondaryIndexes || that_present_globalSecondaryIndexes) {
      if (!(this_present_globalSecondaryIndexes && that_present_globalSecondaryIndexes))
        return false;
      if (!this.globalSecondaryIndexes.equals(that.globalSecondaryIndexes))
        return false;
    }

    boolean this_present_enableTransaction = true && this.isSetEnableTransaction();
    boolean that_present_enableTransaction = true && that.isSetEnableTransaction();
    if (this_present_enableTransaction || that_present_enableTransaction) {
      if (!(this_present_enableTransaction && that_present_enableTransaction))
        return false;
      if (this.enableTransaction != that.enableTransaction)
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    List<Object> list = new ArrayList<Object>();

    boolean present_version = true && (isSetVersion());
    list.add(present_version);
    if (present_version)
      list.add(version);

    boolean present_entityGroup = true && (isSetEntityGroup());
    list.add(present_entityGroup);
    if (present_entityGroup)
      list.add(entityGroup);

    boolean present_primaryIndex = true && (isSetPrimaryIndex());
    list.add(present_primaryIndex);
    if (present_primaryIndex)
      list.add(primaryIndex);

    boolean present_secondaryIndexes = true && (isSetSecondaryIndexes());
    list.add(present_secondaryIndexes);
    if (present_secondaryIndexes)
      list.add(secondaryIndexes);

    boolean present_attributes = true && (isSetAttributes());
    list.add(present_attributes);
    if (present_attributes)
      list.add(attributes);

    boolean present_ttl = true && (isSetTtl());
    list.add(present_ttl);
    if (present_ttl)
      list.add(ttl);

    boolean present_preSplits = true && (isSetPreSplits());
    list.add(present_preSplits);
    if (present_preSplits)
      list.add(preSplits);

    boolean present_streams = true && (isSetStreams());
    list.add(present_streams);
    if (present_streams)
      list.add(streams);

    boolean present_globalSecondaryIndexes = true && (isSetGlobalSecondaryIndexes());
    list.add(present_globalSecondaryIndexes);
    if (present_globalSecondaryIndexes)
      list.add(globalSecondaryIndexes);

    boolean present_enableTransaction = true && (isSetEnableTransaction());
    list.add(present_enableTransaction);
    if (present_enableTransaction)
      list.add(enableTransaction);

    return list.hashCode();
  }

  @Override
  public int compareTo(TableSchema other) {
    if (!getClass().equals(other.getClass())) {
      return getClass().getName().compareTo(other.getClass().getName());
    }

    int lastComparison = 0;

    lastComparison = Boolean.valueOf(isSetVersion()).compareTo(other.isSetVersion());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVersion()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.version, other.version);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetEntityGroup()).compareTo(other.isSetEntityGroup());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEntityGroup()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.entityGroup, other.entityGroup);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPrimaryIndex()).compareTo(other.isSetPrimaryIndex());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPrimaryIndex()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.primaryIndex, other.primaryIndex);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetSecondaryIndexes()).compareTo(other.isSetSecondaryIndexes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSecondaryIndexes()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.secondaryIndexes, other.secondaryIndexes);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetAttributes()).compareTo(other.isSetAttributes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAttributes()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.attributes, other.attributes);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetTtl()).compareTo(other.isSetTtl());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTtl()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.ttl, other.ttl);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetPreSplits()).compareTo(other.isSetPreSplits());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPreSplits()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.preSplits, other.preSplits);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetStreams()).compareTo(other.isSetStreams());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStreams()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.streams, other.streams);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetGlobalSecondaryIndexes()).compareTo(other.isSetGlobalSecondaryIndexes());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetGlobalSecondaryIndexes()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.globalSecondaryIndexes, other.globalSecondaryIndexes);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = Boolean.valueOf(isSetEnableTransaction()).compareTo(other.isSetEnableTransaction());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnableTransaction()) {
      lastComparison = libthrift091.TBaseHelper.compareTo(this.enableTransaction, other.enableTransaction);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  public void read(libthrift091.protocol.TProtocol iprot) throws libthrift091.TException {
    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
  }

  public void write(libthrift091.protocol.TProtocol oprot) throws libthrift091.TException {
    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder("TableSchema(");
    boolean first = true;

    if (isSetVersion()) {
      sb.append("version:");
      sb.append(this.version);
      first = false;
    }
    if (isSetEntityGroup()) {
      if (!first) sb.append(", ");
      sb.append("entityGroup:");
      if (this.entityGroup == null) {
        sb.append("null");
      } else {
        sb.append(this.entityGroup);
      }
      first = false;
    }
    if (!first) sb.append(", ");
    sb.append("primaryIndex:");
    if (this.primaryIndex == null) {
      sb.append("null");
    } else {
      sb.append(this.primaryIndex);
    }
    first = false;
    if (isSetSecondaryIndexes()) {
      if (!first) sb.append(", ");
      sb.append("secondaryIndexes:");
      if (this.secondaryIndexes == null) {
        sb.append("null");
      } else {
        sb.append(this.secondaryIndexes);
      }
      first = false;
    }
    if (isSetAttributes()) {
      if (!first) sb.append(", ");
      sb.append("attributes:");
      if (this.attributes == null) {
        sb.append("null");
      } else {
        sb.append(this.attributes);
      }
      first = false;
    }
    if (isSetTtl()) {
      if (!first) sb.append(", ");
      sb.append("ttl:");
      sb.append(this.ttl);
      first = false;
    }
    if (isSetPreSplits()) {
      if (!first) sb.append(", ");
      sb.append("preSplits:");
      sb.append(this.preSplits);
      first = false;
    }
    if (isSetStreams()) {
      if (!first) sb.append(", ");
      sb.append("streams:");
      if (this.streams == null) {
        sb.append("null");
      } else {
        sb.append(this.streams);
      }
      first = false;
    }
    if (isSetGlobalSecondaryIndexes()) {
      if (!first) sb.append(", ");
      sb.append("globalSecondaryIndexes:");
      if (this.globalSecondaryIndexes == null) {
        sb.append("null");
      } else {
        sb.append(this.globalSecondaryIndexes);
      }
      first = false;
    }
    if (isSetEnableTransaction()) {
      if (!first) sb.append(", ");
      sb.append("enableTransaction:");
      sb.append(this.enableTransaction);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws libthrift091.TException {
    // check for required fields
    // check for sub-struct validity
    if (entityGroup != null) {
      entityGroup.validate();
    }
  }

  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
    try {
      write(new libthrift091.protocol.TCompactProtocol(new libthrift091.transport.TIOStreamTransport(out)));
    } catch (libthrift091.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
    try {
      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
      __isset_bitfield = 0;
      read(new libthrift091.protocol.TCompactProtocol(new libthrift091.transport.TIOStreamTransport(in)));
    } catch (libthrift091.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private static class TableSchemaStandardSchemeFactory implements SchemeFactory {
    public TableSchemaStandardScheme getScheme() {
      return new TableSchemaStandardScheme();
    }
  }

  private static class TableSchemaStandardScheme extends StandardScheme<TableSchema> {

    public void read(libthrift091.protocol.TProtocol iprot, TableSchema struct) throws libthrift091.TException {
      libthrift091.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == libthrift091.protocol.TType.STOP) {
          break;
        }
        switch (schemeField.id) {
          case 1: // VERSION
            if (schemeField.type == libthrift091.protocol.TType.I32) {
              struct.version = iprot.readI32();
              struct.setVersionIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // ENTITY_GROUP
            if (schemeField.type == libthrift091.protocol.TType.STRUCT) {
              struct.entityGroup = new EntityGroupSpec();
              struct.entityGroup.read(iprot);
              struct.setEntityGroupIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // PRIMARY_INDEX
            if (schemeField.type == libthrift091.protocol.TType.LIST) {
              {
                libthrift091.protocol.TList _list112 = iprot.readListBegin();
                struct.primaryIndex = new ArrayList<KeySpec>(_list112.size);
                KeySpec _elem113;
                for (int _i114 = 0; _i114 < _list112.size; ++_i114)
                {
                  _elem113 = new KeySpec();
                  _elem113.read(iprot);
                  struct.primaryIndex.add(_elem113);
                }
                iprot.readListEnd();
              }
              struct.setPrimaryIndexIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // SECONDARY_INDEXES
            if (schemeField.type == libthrift091.protocol.TType.MAP) {
              {
                libthrift091.protocol.TMap _map115 = iprot.readMapBegin();
                struct.secondaryIndexes = new HashMap<String,LocalSecondaryIndexSpec>(2*_map115.size);
                String _key116;
                LocalSecondaryIndexSpec _val117;
                for (int _i118 = 0; _i118 < _map115.size; ++_i118)
                {
                  _key116 = iprot.readString();
                  _val117 = new LocalSecondaryIndexSpec();
                  _val117.read(iprot);
                  struct.secondaryIndexes.put(_key116, _val117);
                }
                iprot.readMapEnd();
              }
              struct.setSecondaryIndexesIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // ATTRIBUTES
            if (schemeField.type == libthrift091.protocol.TType.MAP) {
              {
                libthrift091.protocol.TMap _map119 = iprot.readMapBegin();
                struct.attributes = new HashMap<String,DataType>(2*_map119.size);
                String _key120;
                DataType _val121;
                for (int _i122 = 0; _i122 < _map119.size; ++_i122)
                {
                  _key120 = iprot.readString();
                  _val121 = com.xiaomi.infra.galaxy.sds.thrift.DataType.findByValue(iprot.readI32());
                  struct.attributes.put(_key120, _val121);
                }
                iprot.readMapEnd();
              }
              struct.setAttributesIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // TTL
            if (schemeField.type == libthrift091.protocol.TType.I32) {
              struct.ttl = iprot.readI32();
              struct.setTtlIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // PRE_SPLITS
            if (schemeField.type == libthrift091.protocol.TType.I32) {
              struct.preSplits = iprot.readI32();
              struct.setPreSplitsIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // STREAMS
            if (schemeField.type == libthrift091.protocol.TType.MAP) {
              {
                libthrift091.protocol.TMap _map123 = iprot.readMapBegin();
                struct.streams = new HashMap<String,StreamSpec>(2*_map123.size);
                String _key124;
                StreamSpec _val125;
                for (int _i126 = 0; _i126 < _map123.size; ++_i126)
                {
                  _key124 = iprot.readString();
                  _val125 = new StreamSpec();
                  _val125.read(iprot);
                  struct.streams.put(_key124, _val125);
                }
                iprot.readMapEnd();
              }
              struct.setStreamsIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // GLOBAL_SECONDARY_INDEXES
            if (schemeField.type == libthrift091.protocol.TType.MAP) {
              {
                libthrift091.protocol.TMap _map127 = iprot.readMapBegin();
                struct.globalSecondaryIndexes = new HashMap<String,GlobalSecondaryIndexSpec>(2*_map127.size);
                String _key128;
                GlobalSecondaryIndexSpec _val129;
                for (int _i130 = 0; _i130 < _map127.size; ++_i130)
                {
                  _key128 = iprot.readString();
                  _val129 = new GlobalSecondaryIndexSpec();
                  _val129.read(iprot);
                  struct.globalSecondaryIndexes.put(_key128, _val129);
                }
                iprot.readMapEnd();
              }
              struct.setGlobalSecondaryIndexesIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // ENABLE_TRANSACTION
            if (schemeField.type == libthrift091.protocol.TType.BOOL) {
              struct.enableTransaction = iprot.readBool();
              struct.setEnableTransactionIsSet(true);
            } else {
              libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            libthrift091.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

      // check for required fields of primitive type, which can't be checked in the validate method
      struct.validate();
    }

    public void write(libthrift091.protocol.TProtocol oprot, TableSchema struct) throws libthrift091.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.isSetVersion()) {
        oprot.writeFieldBegin(VERSION_FIELD_DESC);
        oprot.writeI32(struct.version);
        oprot.writeFieldEnd();
      }
      if (struct.entityGroup != null) {
        if (struct.isSetEntityGroup()) {
          oprot.writeFieldBegin(ENTITY_GROUP_FIELD_DESC);
          struct.entityGroup.write(oprot);
          oprot.writeFieldEnd();
        }
      }
      if (struct.primaryIndex != null) {
        oprot.writeFieldBegin(PRIMARY_INDEX_FIELD_DESC);
        {
          oprot.writeListBegin(new libthrift091.protocol.TList(libthrift091.protocol.TType.STRUCT, struct.primaryIndex.size()));
          for (KeySpec _iter131 : struct.primaryIndex)
          {
            _iter131.write(oprot);
          }
          oprot.writeListEnd();
        }
        oprot.writeFieldEnd();
      }
      if (struct.secondaryIndexes != null) {
        if (struct.isSetSecondaryIndexes()) {
          oprot.writeFieldBegin(SECONDARY_INDEXES_FIELD_DESC);
          {
            oprot.writeMapBegin(new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.STRUCT, struct.secondaryIndexes.size()));
            for (Map.Entry<String, LocalSecondaryIndexSpec> _iter132 : struct.secondaryIndexes.entrySet())
            {
              oprot.writeString(_iter132.getKey());
              _iter132.getValue().write(oprot);
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.attributes != null) {
        if (struct.isSetAttributes()) {
          oprot.writeFieldBegin(ATTRIBUTES_FIELD_DESC);
          {
            oprot.writeMapBegin(new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.I32, struct.attributes.size()));
            for (Map.Entry<String, DataType> _iter133 : struct.attributes.entrySet())
            {
              oprot.writeString(_iter133.getKey());
              oprot.writeI32(_iter133.getValue().getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetTtl()) {
        oprot.writeFieldBegin(TTL_FIELD_DESC);
        oprot.writeI32(struct.ttl);
        oprot.writeFieldEnd();
      }
      if (struct.isSetPreSplits()) {
        oprot.writeFieldBegin(PRE_SPLITS_FIELD_DESC);
        oprot.writeI32(struct.preSplits);
        oprot.writeFieldEnd();
      }
      if (struct.streams != null) {
        if (struct.isSetStreams()) {
          oprot.writeFieldBegin(STREAMS_FIELD_DESC);
          {
            oprot.writeMapBegin(new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.STRUCT, struct.streams.size()));
            for (Map.Entry<String, StreamSpec> _iter134 : struct.streams.entrySet())
            {
              oprot.writeString(_iter134.getKey());
              _iter134.getValue().write(oprot);
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.globalSecondaryIndexes != null) {
        if (struct.isSetGlobalSecondaryIndexes()) {
          oprot.writeFieldBegin(GLOBAL_SECONDARY_INDEXES_FIELD_DESC);
          {
            oprot.writeMapBegin(new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.STRUCT, struct.globalSecondaryIndexes.size()));
            for (Map.Entry<String, GlobalSecondaryIndexSpec> _iter135 : struct.globalSecondaryIndexes.entrySet())
            {
              oprot.writeString(_iter135.getKey());
              _iter135.getValue().write(oprot);
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetEnableTransaction()) {
        oprot.writeFieldBegin(ENABLE_TRANSACTION_FIELD_DESC);
        oprot.writeBool(struct.enableTransaction);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class TableSchemaTupleSchemeFactory implements SchemeFactory {
    public TableSchemaTupleScheme getScheme() {
      return new TableSchemaTupleScheme();
    }
  }

  private static class TableSchemaTupleScheme extends TupleScheme<TableSchema> {

    @Override
    public void write(libthrift091.protocol.TProtocol prot, TableSchema struct) throws libthrift091.TException {
      TTupleProtocol oprot = (TTupleProtocol) prot;
      BitSet optionals = new BitSet();
      if (struct.isSetVersion()) {
        optionals.set(0);
      }
      if (struct.isSetEntityGroup()) {
        optionals.set(1);
      }
      if (struct.isSetPrimaryIndex()) {
        optionals.set(2);
      }
      if (struct.isSetSecondaryIndexes()) {
        optionals.set(3);
      }
      if (struct.isSetAttributes()) {
        optionals.set(4);
      }
      if (struct.isSetTtl()) {
        optionals.set(5);
      }
      if (struct.isSetPreSplits()) {
        optionals.set(6);
      }
      if (struct.isSetStreams()) {
        optionals.set(7);
      }
      if (struct.isSetGlobalSecondaryIndexes()) {
        optionals.set(8);
      }
      if (struct.isSetEnableTransaction()) {
        optionals.set(9);
      }
      oprot.writeBitSet(optionals, 10);
      if (struct.isSetVersion()) {
        oprot.writeI32(struct.version);
      }
      if (struct.isSetEntityGroup()) {
        struct.entityGroup.write(oprot);
      }
      if (struct.isSetPrimaryIndex()) {
        {
          oprot.writeI32(struct.primaryIndex.size());
          for (KeySpec _iter136 : struct.primaryIndex)
          {
            _iter136.write(oprot);
          }
        }
      }
      if (struct.isSetSecondaryIndexes()) {
        {
          oprot.writeI32(struct.secondaryIndexes.size());
          for (Map.Entry<String, LocalSecondaryIndexSpec> _iter137 : struct.secondaryIndexes.entrySet())
          {
            oprot.writeString(_iter137.getKey());
            _iter137.getValue().write(oprot);
          }
        }
      }
      if (struct.isSetAttributes()) {
        {
          oprot.writeI32(struct.attributes.size());
          for (Map.Entry<String, DataType> _iter138 : struct.attributes.entrySet())
          {
            oprot.writeString(_iter138.getKey());
            oprot.writeI32(_iter138.getValue().getValue());
          }
        }
      }
      if (struct.isSetTtl()) {
        oprot.writeI32(struct.ttl);
      }
      if (struct.isSetPreSplits()) {
        oprot.writeI32(struct.preSplits);
      }
      if (struct.isSetStreams()) {
        {
          oprot.writeI32(struct.streams.size());
          for (Map.Entry<String, StreamSpec> _iter139 : struct.streams.entrySet())
          {
            oprot.writeString(_iter139.getKey());
            _iter139.getValue().write(oprot);
          }
        }
      }
      if (struct.isSetGlobalSecondaryIndexes()) {
        {
          oprot.writeI32(struct.globalSecondaryIndexes.size());
          for (Map.Entry<String, GlobalSecondaryIndexSpec> _iter140 : struct.globalSecondaryIndexes.entrySet())
          {
            oprot.writeString(_iter140.getKey());
            _iter140.getValue().write(oprot);
          }
        }
      }
      if (struct.isSetEnableTransaction()) {
        oprot.writeBool(struct.enableTransaction);
      }
    }

    @Override
    public void read(libthrift091.protocol.TProtocol prot, TableSchema struct) throws libthrift091.TException {
      TTupleProtocol iprot = (TTupleProtocol) prot;
      BitSet incoming = iprot.readBitSet(10);
      if (incoming.get(0)) {
        struct.version = iprot.readI32();
        struct.setVersionIsSet(true);
      }
      if (incoming.get(1)) {
        struct.entityGroup = new EntityGroupSpec();
        struct.entityGroup.read(iprot);
        struct.setEntityGroupIsSet(true);
      }
      if (incoming.get(2)) {
        {
          libthrift091.protocol.TList _list141 = new libthrift091.protocol.TList(libthrift091.protocol.TType.STRUCT, iprot.readI32());
          struct.primaryIndex = new ArrayList<KeySpec>(_list141.size);
          KeySpec _elem142;
          for (int _i143 = 0; _i143 < _list141.size; ++_i143)
          {
            _elem142 = new KeySpec();
            _elem142.read(iprot);
            struct.primaryIndex.add(_elem142);
          }
        }
        struct.setPrimaryIndexIsSet(true);
      }
      if (incoming.get(3)) {
        {
          libthrift091.protocol.TMap _map144 = new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.STRUCT, iprot.readI32());
          struct.secondaryIndexes = new HashMap<String,LocalSecondaryIndexSpec>(2*_map144.size);
          String _key145;
          LocalSecondaryIndexSpec _val146;
          for (int _i147 = 0; _i147 < _map144.size; ++_i147)
          {
            _key145 = iprot.readString();
            _val146 = new LocalSecondaryIndexSpec();
            _val146.read(iprot);
            struct.secondaryIndexes.put(_key145, _val146);
          }
        }
        struct.setSecondaryIndexesIsSet(true);
      }
      if (incoming.get(4)) {
        {
          libthrift091.protocol.TMap _map148 = new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.I32, iprot.readI32());
          struct.attributes = new HashMap<String,DataType>(2*_map148.size);
          String _key149;
          DataType _val150;
          for (int _i151 = 0; _i151 < _map148.size; ++_i151)
          {
            _key149 = iprot.readString();
            _val150 = com.xiaomi.infra.galaxy.sds.thrift.DataType.findByValue(iprot.readI32());
            struct.attributes.put(_key149, _val150);
          }
        }
        struct.setAttributesIsSet(true);
      }
      if (incoming.get(5)) {
        struct.ttl = iprot.readI32();
        struct.setTtlIsSet(true);
      }
      if (incoming.get(6)) {
        struct.preSplits = iprot.readI32();
        struct.setPreSplitsIsSet(true);
      }
      if (incoming.get(7)) {
        {
          libthrift091.protocol.TMap _map152 = new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.STRUCT, iprot.readI32());
          struct.streams = new HashMap<String,StreamSpec>(2*_map152.size);
          String _key153;
          StreamSpec _val154;
          for (int _i155 = 0; _i155 < _map152.size; ++_i155)
          {
            _key153 = iprot.readString();
            _val154 = new StreamSpec();
            _val154.read(iprot);
            struct.streams.put(_key153, _val154);
          }
        }
        struct.setStreamsIsSet(true);
      }
      if (incoming.get(8)) {
        {
          libthrift091.protocol.TMap _map156 = new libthrift091.protocol.TMap(libthrift091.protocol.TType.STRING, libthrift091.protocol.TType.STRUCT, iprot.readI32());
          struct.globalSecondaryIndexes = new HashMap<String,GlobalSecondaryIndexSpec>(2*_map156.size);
          String _key157;
          GlobalSecondaryIndexSpec _val158;
          for (int _i159 = 0; _i159 < _map156.size; ++_i159)
          {
            _key157 = iprot.readString();
            _val158 = new GlobalSecondaryIndexSpec();
            _val158.read(iprot);
            struct.globalSecondaryIndexes.put(_key157, _val158);
          }
        }
        struct.setGlobalSecondaryIndexesIsSet(true);
      }
      if (incoming.get(9)) {
        struct.enableTransaction = iprot.readBool();
        struct.setEnableTransactionIsSet(true);
      }
    }
  }

}


As your partner, Baddour Group manages the entire process and all logistics so that the sales process is completed in a timely manner. We approach each property individually and develop a specific plan that will result in the best possible price for your property.
How your property is priced is integral to the sales process. While the market dictates the price range, there are steps you can take to keep your price on the high end of that range. Our experienced brokers help you with market placement, presentation, competition, and timing to increase your property's value. Your Baddour Group agent will provide you with a personalized and comprehensive market analysis (CMA), which will include comparable sales, market conditions, best price strategy and your timeline.
Presentation is crucial to getting the best price in the sales process. Baddour Group will advise you on how to present your property and what steps you may need to take to get it in a marketable condition and is presented in the best possible light to prospective buyers.
Another key element in the sales process is an effective marketing plan, which provides optimal market exposure in the least amount of time, yet still yields the best price. Baddour Group will provide you with a personalized marketing plan designed to reach the maximum number of qualified buyers for your property.
It's important to regularly review your property's pricing and marketing strategy and make any necessary adjustments. Your Baddour Group agent will manage this for you and advise you on any suggested modifications.
Once you accept an offer and sign a contract of sale, we will work with you to ensure the Board package is perfectly prepared according to the Board's requirements, enhancing the chances of Board approval.
Once the Board approves the prospective buyers and their mortgage is approved, if applicable, the attorneys prepare the documentation for the closing.
On the day of your closing, your Baddour Group agent, the buyers, and the buyers' agent typically will conduct a walkthrough to ensure the condition of the apartment is as promised. If any issues are identified, they will be addressed at the closing.


text:
Station Fire Memorial Park is a park located in the state of Rhode Island. It was created and dedicated following The Station nightclub fire that occurred on February 20, 2003, resulting in 100 deaths and 230 injuries, and is located on the same property where the fire took place. It was officially dedicated and opened to the public on May 21, 2017.

History

The park was created in memory of the victims affected by a nightclub fire that occurred on Thursday, February 20, 2003 in West Warwick, Rhode Island. The fire was caused by pyrotechnics set off by the tour manager of the evening's headlining band Great White, which ignited plastic foam used as sound insulation in the walls and ceilings surrounding the stage. As of May 2017, it is the fourth-deadliest nightclub fire in US history. It resulted in 100 deaths and 230 injuries. Many of the survivors developed posttraumatic stress disorder as a result of psychological trauma.

Following the investigation of the event, the site of the fire was cleared of all materials, structures, and debris, and a multitude of crosses were placed as memorials, left by loved ones of the deceased. On May 20, 2003, nondenominational services began to be held at the site of the fire for a number of months. Access remains open to the public, and memorial services are held each February 20. In June 2003, the Station Fire Memorial Foundation (SFMF) was formed with the purpose of purchasing the property in order to build and maintain a memorial for the victims of the event. In September 2012, the owner of the land, Ray Villanova, donated the property of the site to the SFMF. By April 2016, $1.65 million of the $2 million fundraising goal had been achieved and construction of the memorial had commenced. The memorial dedication ceremony took place on May 21, 2017.

References

Monuments and memorials in Rhode Island
The Station nightclub fire
Parks in Rhode Island

redpajama_set_name: RedPajamaWikipedia


Good: Automated workflows that streamline repetitive tasks, tools and metrics that help companies comply with labor regulations, dedicated portal for hiring managers.
Bad: It currently doesn't offer resume parsing or built-in background checks, although both features are in the pipeline for a future upgrade.
Bottom Line: Kallidus Recruit is designed to help both recruiters and hiring managers streamline their hiring processes, which leads to better candidate experience.
Kallidus is a talent management software suite designed to help organizations retain, develop and empower their employees. It includes talent management, recruitment, performance management, and learning features. This review focuses on its Kallidus Recruit solution.
Kallidus Recruit is a cloud-based recruiting solution that helps recruiters and hiring managers streamline hiring processes. Companies that work with multiple processes benefit from using one system for all hiring features, such as compiling reports.
Kallidus Recruit can be purchased either as a stand-alone solution or as part of Kallidus' talent management suite.
Kallidus currently doesn't offer resume parsing, although that feature is in its pipeline for a future upgrade.
It also currently doesn't offer integrated employee background checks (or document verification services, as it's known in the U.K.). Although it can be done, the user will need to leave the Kallidus solution in order to run background checks. Kallidus plans to offer background checking functionality sometime in the next year.


Have you tried Optimal Payments Gateway?
We integrate Optimal Payments Solutions to websites.
Optimal Payments is generally available to our customers in most countries- please check with us to confirm that it is the right solution for your website.
Let's talk about Optimal Payments integration!


Cooling towers play a crucial role in many facilities' air conditioning and industrial process systems, but they must be properly maintained and regularly cleaned in order to operate properly. At Guardian Services, our full-scale method of cooling tower cleaning removes all scale, sediment, and organic nutrients, which can lead to bacterial growth and potentially serious health issues.
Schedule an appointment today to get your cooling tower in Dallas Fort Worth cleaned right away. Call us at (214) 760-6776!
Cooling towers are an efficient and cost-effective way to cool water for air conditioning and industrial processes. They use a fan to move air through a recirculating water system in an outdoor location. This process along with the exposure to the outdoor elements can lead to the buildup of scale, sediment, and biological contaminants.
Regular maintenance of the tower and chemical treatment of the system's water supply can help reduce these issues, but a full system cleaning is required to remove all contaminant build-up and ensure that the tower's components are operating efficiently.
Should You Have Your Cooling Tower Cleaned?
As per the Occupational Safety and Health Administration or OSHA, cooling towers should be drained and fully cleaned quarterly or at least twice a year. If a cooling tower is not used year-round, it should be cleaned before initial start-up, at the beginning of the cooling season, and after shut-down in the fall. Towers that show high levels of biological growth should be cleaned immediately and towers that have been out of service for long periods of time should be cleaned before they are put back in service. OSHA also recommends that new systems be cleaned and disinfected to remove construction residue, which can contribute to biological growth.
Guardian Services performs free, photo- documented inspections for all customers and has certified air system cleaning specialists on staff to help you determine if you or your cooling tower can benefit from cleaning.
Our team performs a full-scale cleaning of the cooling tower, which involves fully draining the system and cleaning the interior and exterior surfaces by manual and hydraulic means.
Guardian's cleaning process begins with a full system inspection to determine the specifics of the cooling tower, identify any issues or damaged areas, and formulate an effective cleaning plan. Our technicians access the system in a safe and professional manner and protect all vulnerable components before starting the cleaning process. Once the system is drained, all sediment and debris are removed from the tower basin and collected for safe, off-site disposal. A non-hazardous chemical is used to treat all contaminated surfaces and the interior and exterior of the tower are scrubbed and power washed to remove all contaminants. Once the tower is entirely clean, it is re-inspected for any issues or damage and all components are returned to those settings recorded just prior to the cleaning operations.
Guardian Services always provides a thorough system assessment before starting any work to determine the best cleaning methods to use in order to protect the building occupants and equipment.
All Guardian customers will be given access to our customer portal system. The portal is open 24/7 for customers to access their documentation, scheduling, and photos.
For more information or to request an appointment for cooling tower cleaning in Dallas Fort Worth, Addison, or Richardson, give us a call at (214) 760-6776!


Priced to sell!! This mobile home is located at Arrow Glen Manor in the City of Covina! This 3 Bed 2 Bath home is turn key ready with an upgraded kitchen and new vanities in bathrooms. This home takes full advantage of its 1,248 sqft. with its open concept of the living room and kitchen. Side by side double parking & a third car space directly in front of the property. Home also features tiled flooring and skylight in living room, separate wash room/ utility room, cemented back patio, brand new central A/C condenser, and front deck with room for a small table. Easy bus and freeway access. Sellers are very motivated. Schedule your appointment today!


DiVino Patio, the latest restaurant of DiVino Group, offers wonderful outdoor seating in the heart of our restless city; an oasis only five minutes walk from the shores of Victoria Harbour. Red brick walls, vintage blackboards, old slicers, warm interiors with rustic shades. Imagine hanging hams, Sicilian olives, freshly baked bread, colorful homemade marmalades, hand-made pasta and pizza, fragrant salami, slices of pecorino, bottles of genuine oil, pots of fresh rosemary, big wheels of parmesan cheese, savoury main courses.
This is DiVino Patio – Ristorante Bar Pizzeria: "Where the time runs slowly". A place to discover the tradition of old Italian grocery stores from the 50's right in the heart of Hong Kong. Whether you are looking for brunch, lunch or dinner, trust DiVino Ristorante Bar Pizzeria to provide the best social and dining experience in Hong Kong. DiVino Patio Ristorante Bar Pizzeria was honoured with the Italian Hospitality Award 2012.
During lunchtime (12 – 3PM), a rich lunch buffet is freshly prepared daily.
Nevertheless, customers will have multiple choices from our "a-la-carte" main course selection. A business set lunch option will be offered to all executive customers. The restaurant features a friendly and discreet service for a sparkling yet highly casual dining experience.After 6pm dinner time offers a la carte menu features specialties from the grill, the skillet, daily roasted items as well as pizzas from the oven. The rotisserie is the heart of the "stage", together with the Formaggeria and the Salumeria. In the true tradition of DiVino Group, this Italian cuisine focuses on the freshness and the high quality of the seasonal ingredients.
Signature "Italian Aperitivo" showcases true Italian hospitality, from 5.30pm to 7.45pm. Guests can enjoy, free of charge, a selection of fresh delicacies (hot, cold) in the bar area: a time for social gathering after a hectic day of work.
DiVino Patio throws the best pizza parties in town! Your little ones will not only get to eat delicious pizza, but have loads of fun making it too!
They can learn to toss and roll their 8 inch pizza dough, then select from endless toppings. A free flow of juices, balloons, e-invitation, plus two delicious birthday pizza cakes are also provided.
The cost per child is HK$198 & 10% and a minimum of HK$4,500 is required to book parties.Parties can be booked daily, Monday – Sunday: 3:30 – 5:30PM.
warm interiors with rustic shades.


text:
Anna Boden and Ryan K. Fleck are an American filmmaking duo. They are best known for writing and directing Captain Marvel, which made more than 1 billion dollars at the box office globally. They are also known for their collaborations on the films Half Nelson, Sugar,  It's Kind of a Funny Story, and Mississippi Grind.

Early life

Boden is originally from Massachusetts and grew up in Newton while Fleck graduated from Castro Valley High School. Before attending New York University's Tisch School of the Arts where he studied film, Fleck went to Diablo Valley College to study science and math. Boden attended Columbia University. The two met on the set of a student film where they bonded over the works of Robert Altman and, after Fleck had finished his thesis short film Struggle, they decided to collaborate.

Fleck was born in Berkeley, California and raised there and in Oakland. Fleck had grown up on classic fan favorites such as E.T. the Extra-Terrestrial and Back to the Future.

Boden has said that while there was no specific film that inspired her to pursue film making, she had a fondness for watching movies as a child and cites learning about Robert Altman as a turning point in how she viewed film as a medium.

Career
Together they made the short documentaries Have You Seen This Man? and Young Rebels before they wrote and directed the short film Gowanus, Brooklyn, a sample feature aiming to attract potential financiers to their undeveloped script, Half Nelson.

The short won a prize at the 2004 Sundance Film Festival and Boden and Fleck were subsequently invited to the Sundance Writer's Lab to receive professional feedback on the Half Nelson screenplay. The film did not receive adequate financing for years, and while trying to initiate the project, Fleck explains: "We were trying to get it off the ground so we had plenty of time to keep writing and rewriting. I think the time was valuable because I think we made it as good as we could." Though Fleck was the only of the pair to receive directing credit for the film, he has gone on record and said that the work was an equal divide.

In spite of the effort in making the script "as good as we could" prior to filming, Fleck encouraged Half Nelson's actors to ad lib and improvise, although he and lead actor Ryan Gosling compromised many scenes in the rehearsal process as Fleck thought that Gosling's ideas were too different from the script in some cases. He also had several disagreements with Boden while writing; though he claims their "back and forth" system of rewriting each other's work has always worked well. Half Nelson was well received by critics and got nominated for an Academy Award for Best Actor for Ryan Gosling. Many other nominations went to Ryan Gosling for his role as Dan Dunne.

Boden and Fleck have since co-written and co-directed the 2008 film Sugar, which premiered at the 2008 Sundance Film Festival, about a 19-year-old Dominican man who immigrates to the United States to play minor league baseball. The two wrote the screenplay after researching about many Dominican immigrants who arrive in America to play in minor league towns, saying: "The stories we heard were so fascinating that it became what we were writing before we'd even decided it was our next project". They also collaborated on a screen adaptation of Ned Vizzini's young adult novel It's Kind of a Funny Story, which was released on October 8, 2010.

In 2012, the duo began work on a gambling movie called Mississippi Grind. The idea for the film came when they would visit riverboat casinos in Iowa. By this point in their career, Boden and Fleck had fully committed to each other, "In the early days of our partnership we had to navigate a lot of issues concerning trust and ego. Nowadays, those issues are almost entirely gone. Having a creative partner who you can wholly trust is a wonderful asset."

In April 2017, Boden and Fleck were hired to direct the Marvel Studios film Captain Marvel. They were previously considered to direct another Marvel film, Guardians of the Galaxy. Producer Kevin Feige said of them, "We met with lots and lots of people... and Anna and Ryan just had an amazing way of talking about Carol Danvers and talking about her journey... We want filmmakers that can help us focus on and elevate the character journey so it doesn't get lost amongst the spectacle." The film was released in March 2019, and became a box office success, grossing more than $1 billion worldwide. In May 2019, it was revealed they would direct the first two episodes and produce the television show Mrs. America starring Cate Blanchett as Phyllis Schlafly.  Boden and Fleck were in talks to direct a Marvel Disney+ series.

Personal life
Boden and Fleck formerly dated, however, contrary to popular belief they are not a married couple (though multiple sources continue to erroneously report it). Boden was pregnant at the time of Mississippi Grinds release. Boden is Jewish.

Filmography

Film

Television
Anna Boden

Ryan Fleck

References

External links

1976 births
1979 births
American film editors
American women film producers
American film producers
American women film directors
Living people
Artists from Berkeley, California
American women screenwriters
Film directors from California
Columbia College (New York) alumni
Film producers from California
American television directors
American women television directors
American male screenwriters
Tisch School of the Arts alumni
Artists from Oakland, California
Filmmaking duos
Screenwriters from California
American women film editors


Love that face! So glad she's back home.
oh that is too cute.
What an adorable pic. I have 2 boston terriors and they r the greatest dog ever. And the name Lily is also the name of my eldest daughter. Just wanted to comment on the cute picture and I love jiilibean soup products. I have a scrapbook store in Wa and would love to carry your stuff. How can we get it in our store?


Electrochemical regeneration of organic hydrides is often hindered by the rapid dimerization of organic radicals produced as the first intermediates of these electrochemical transformations. In this work, we utilize proton-coupled electron transfer to outcompete the undesired dimerization and achieve successful hydride regenerations of two groups of organic hydrides – acridines and benzimidazoles. This work provides an analysis of the critical factors that control the regeneration pathways of organic hydrides.


text:
Category World News
"I'm 43% Nigerian" – Duchess Of Sussex, Meghan Markle Reveals
Meghan Markle, the Duchess of Sussex, has revealed that she is 43% Nigerian.
Meghan Markle revealed this in the most recent episode of her podcast, Archetypes. During an interview with Senegalese-American actress and comedian Issa Rae, Nigerian-American comedian and writer Ziwe Fumudoh, and professor Emily Bernards, the Duchess of Sussex revealed that she took a genealogy test and found out that she is 43% Nigerian.
"I just had my genealogy done a couple years ago," Meghan explains, as her guests eagerly ask her to share what the results entailed.
READ MORE: King Charles III Sells 14 Racehorses Passed To Him By His Late Mother Queen Elizabeth
DJ Cuppy Reveals Queen Elizabeth's True Personality As She Mourns Her Death
Biography Of Queen Elizabeth II
The Duchess then proudly says "I'm 43% Nigerian" to the shock of Ziwe, who shouts "No way!".
Ziwe, a Nigerian-American, then asks: "Are you serious? This is huge. Igbo, Yoruba, do we know?" The Duchess of Sussex then tells her listeners: "I'm going to start to dig deeper into all of this because anyone that I've told, especially Nigerian women, are just like, what?"
Read More How A Teenager Married A 61 Year Old Man In America
Marvel Star, Jeremy Renner, In Critical Condition After Snow Plowing Accident
World Population Hits Eight Billion — UN
Man Kidnaps 8-Year-Old Stepson, Demands 182,000 Naira Ransom From Wife
Bill Gates' Ex-Wife, Melinda Finds Love Again One Year After Divorce
Published on November 9, 2022 1 min read

redpajama_set_name: RedPajamaCommonCrawl


text:
Fondatore e direttore del periodico Seven Arts (1916), propugnò i valori del socialismo, balzando più volte agli onori delle cronache come sovversivo.

Biografia

Opera

 l'indesiderato (1917), Rahab (1922), La nostra America (1919), La riscoperta dell'America (1929), Spagna vergine (1926) e Viaggio nel Sudamerica (1943).

Opere

Altri progetti

Collegamenti esterni


text:
Frequent question: What countries were in the First French Empire?
Who did the French colonize first?
How many French empires were there?
What was the first French empire in the New World?
What countries were French?
Is French Guiana France?
Which countries in South America were first claimed by France?
Who was the first emperor of the French empire?
What countries were part of the French empire in 1914?
What was the first empire in history?
When did the French first come to America?
Who were the first settlers in Quebec?
When did New France start?
Was Morocco a French colony?
Do they speak French in Africa?
Samuel de Champlain A French explorer who founded the first permanent French settlement in North America, Quebec.
Quebec The first permanent French settlement, founded in 1608.
French Empire (French: Empire français) may refer to: First French Empire, ruled by Napoleon I from 1804 to 1814 and in 1815 and by Napoleon II in 1815, the French state from 1804 to 1814 and in 1815. Second French Empire, led by Napoleon III, the French state from 1852 to 1870.
Samuel de Champlain was employed in the interests of successive fur-trading monopolies and sailed into the St. Lawrence in 1603. In the next year he was on the Bay of Fundy and had a share in founding the first French colony in North America—that of Port-Royal, (now Annapolis Royal, Nova Scotia).
IMPORTANT: You asked: What is the meaning of Niger in French?
1. DR Congo Africa
2. France Europe
3. Canada North America
4. Madagascar Africa
French Guiana, overseas territorial collectivity of France, situated on the northeastern coast of South America. French Guiana is bounded by Brazil to the south and east, Suriname to the west, and the Atlantic Ocean to the northeast. The capital is Cayenne.
French Guiana was first settled by the French in 1604, although its earliest settlements were abandoned in the face of hostilities from the indigenous population and tropical diseases. The settlement of Cayenne was established in 1643, but was abandoned. It was re-established in the 1660s.
Who was Napoleon? Napoleon I, also called Napoléon Bonaparte, was a French military general and statesman. Napoleon played a key role in the French Revolution (1789–99), served as first consul of France (1799–1804), and was the first emperor of France (1804–14/15).
By 1914, France had amassed an empire incorporating over 10,000,000 km2 (4,000,000 mi2) and 60 million people. In Southeast Asia the French pieced together the colony of Indochina by 1893, adding Laos, Cambodia (now Kampuchea), Annam, and Tonkin to Cochin China. Tunisia and Morocco became protectorates.
Akkadia was the world's first empire. It was established in Mesopotamia around 4,300 years ago after its ruler, Sargon of Akkad, united a series of independent city states.
IMPORTANT: Best answer: Which tense is used most in speaking French?
As the English, Spanish and Dutch began to explore and claim parts of North America, Jacques Cartier began the French colonization of North American in 1534. By the 1720's the colonies of Canada, Acadia, Hudson Bay, Newfoundland and Louisiana that made up New France were well established.
The first settlers of the region were the Iroquois, who spent time in what's now called Québec long before the Europeans arrived. The Vikings landed in Canada more than 1,000 years ago, probably followed by Irish and Basque fishermen.
In Europe, French is the official language in Belgium, France, Luxembourg, Monaco and Switzerland.
1912 – Morocco becomes a French protectorate under the Treaty of Fez, administered by a French Resident-General. Spain continues to operate its coastal protectorate. The sultan has a largely figurehead role.
French remains the sole official language in 11 African countries, and the second official language in 10.


L'Allegro, il Penseroso ed il Moderato is the most joyful work I've seen on stage this year. American choreographer Mark Morris premiered this masterpiece in 1988 in Brussels. We owe a great debt of thanks to Luminato for bringing this work to Toronto for its Canadian premiere twenty-five years later. It is an exhilarating feast for the eyes and ears that restores your faith in humanity.
L'Allegro and Il Penseroso are two pastoral poems from 1645 by John Milton about contrasting personalities – the happy man and the contemplative man. Charles Jennens, who would later be the librettist for Handel's Messiah, had the idea of not presenting the two poems sequentially but mingling sections of the two to create a dialogue. To these he added a third personality, Il Moderato ("the moderate man") as a mean between the two extremes. While the original libretto gives Il Moderato the last word, Morris appropriately gives it to L'Allegro, who concludes singing, "These delights if thou canst give, Mirth, with thee we mean to live". Jennens' libretto with the text divided among four soloists and a chorus Handel set to music in 1740. Mark Morris used this oratorio as the basis for his first full-length ballet.
Pastoral poetry depicts humanity, in the guise of shepherds and shepherdesses, living at one with nature and the change of seasons with disputes over love their only care. In Shakespeare's As You Like It the court flees into the Forest of Arden to live just such a pastoral life complete with the jovial personality of Touchstone and the melancholy personality of Jacques.
Morris creates a modern form of pastoral by celebrating the egalitarianism of the genre inherent in the vision of men and women doing the same work. He choreographs the piece for an ensemble of twelve men and twelve women, with no one elevated above the rest as a featured premier danseur or prima ballerina. In group dances no one is habitually in the back row or in the front row. Rather every dancer has a turn in the limelight. More than this, Morris does away with traditional male versus female dance roles. If dancers pair off, men will as likely pair off with men, and women with women, as men with women. The same applies in lifts. Men lift women, women lift men, men lift men and women lift women. At the end of one sequence all the female dancers lift the male dancers and carry them into the wings. In another sequence to Il Penseroso's words "Then as I wake, sweet music breathe, / Above, about, or underneath", Morris satirizes male attitudes. In two concentric rings the male dancers first hug, then slap each other, then pose while one ring slaps the bums of the men in the other as if in some frat ritual. Then they reverse roles before tiptoeing off in haughty pairs. You won't see this in conventional ballet, but that's the point. Morris's choreography conveys such a buoyant sense of freedom because it breaks all the traditional hierarchical and gender-restricted rules of classical ballet.
The general hallmark of Morris's choreography is a simplicity that conceals difficulty. The very beginning of the ballet is based simply on running. Two lines run diagonally across the stage intersecting at a midpoint, but though running faster and faster, miraculously never collide. Later, in Part The Second, walking is the focus, with two chains of dancers entering the stage diagonally opposite each other, processing directly towards each other with collision immanent before veering away from each other at the last moment. The patterns the two mirroring meandering chains make across the stage beautifully illustrate Il Moderato's words, "Each action will derive new grace / From order, measure, time, and place".
In Morris apparent complexity is the product of the building up of simple units. A small group of dancers will begin a series of actions – such as evoking through sequential gestures prayer, Gothic arches and contemplation during the chorus "There let the pealing organ blow" – and continue to repeat its sequence, each time joined by another group who, as in a fugue, begin their sequence just after the first group has begun its repeat. Eventually the stage is filled with several groups who at any moment are all at different stages of completing the same sequence. At the same time this additive technique reflects the contrapuntal nature of Handel's music.
Just as Handel so often uses image-painting in his music, Morris has the dancers' gestural language reflect the words. In L'Allegro's air "Come , thou goddess fair and free", the dancers make beckoning gestures on the word "come" in the first line and self-crowning gestures on the word "ivy-crowned" in the last. While most of Morris's scenes embody the mood of the music, a few set out to depict the picture the words depict. In L'Allegro's air about the lark, "Mirth, admit me of thy crew", dancers mime opening their windows to hear the lark (Dallas McMurray with undulating arms worthy of a Tchaikovskian swan). In Il Penseroso's subsequent air about the nightingale, "Sweet bird, that shun'st the noise of folly" that speaks of the disappearance of birds, Morris has his company depict a starling-like crowd of birds veering in different directions before they fly off. Throughout this air dancers who had been doing lifts to help their partners "fly" begin appearing, still doing the lifting motion, but gradually missing their partners until none appear. The gradual loss is perfect for the melancholy view Il Penseroso expresses.
The most humorous depiction of all is Morris's choreography of L'Allegro's air about hunting "Mirth admit me to thy crew! To listen how the hounds and horn". Here some dancers become the trees and bushes of the scenery, while two other become the deer trying to hide and the rest become the dogs, hornsman and aristocratic couple hunting them down. Morris includes numerous comic details like one of the hounds lifting his leg on the bushes. What makes this so endearing is the childlike naiveté that Morris captures that is clearly present in Handel's own imitative passages.
All in all, L'Allegro amounts to a postmodern take on the 18th-century pastoral. The Greek Arcadia was home to all these shepherds and shepherdesses, but costume designer Christine Van Loon, clothes the dancers with a simplicity that matches Morris's choreography. Men and women are clad in a palette of pastels that recalls painting of Watteau and Fragonard (men not excluded from wearing pink). The women wear flowing knee-length waist shifts with an undershift in a contrasting colour while the men wear tights and a short tunic tucked into a sash in a contrasting colour. These tunics are the clearest reference to classic Greek costume, but the men's tops vary in the same way as the women's – one-shouldered, slit long-sleeved, short-sleeved and sleeveless. All the dancers are barefoot. For Part the Second, they change into even deeper pastels.
Adrianne Lobel recalls 18th-century theatre by constructing a set made up of legs and twenty moving scrims and drops. These do not depict scenes as in the 18th-century, but are in solid pastel colours that echo the colours of the costumes. When one drop with evenly-spaced squares falls in front of another, we have the abstract depiction of the city spoken of by Il Penseroso and the Chorus in "Populous cities please us then". When night falls, an all-black drop is lowered halfway down over the stage. Morris often has the downstage scrims act as mirrors. A couple or group will dance in front of the scrim only to be mirrored by one or more couples or groups behind it. The dancers are so precisely coordinated that the effect is uncanny.
The orchestra for the performance was the impeccable Tafelmusik Baroque Orchestra under the baton of British conductor Jane Glover. The tempi were brisk without a loss of expressivity. The one question was how the sound of the 34-member orchestra and 25-member Tafelmusik Chamber Choir could possibly be heard in all the immensity of the Sony Centre. The four soloists were tenor Thomas Cooley, soprano Karina Gauvin, soprano Shannon Mercer and baritone Douglas Williams. All gave vivid accounts of their various roles, though Gauvin's words, unlike the others', were not ideally distinct.
The combination of Handel's exultant music so beautifully played and the dancers' precise yet exuberant performances turned the evening into a celebration of community and all that is best in humankind. L'Allegro is one of those rare creations that effortlessly draws an audience upwards into bliss.
Photo: (top) The cast in a chain dance; (middle) Two cast member in flight. ©2010 Ken Friedman; (bottom) Two deer hide behind a tree. ©2013 David Leyes.


| How Low Will Mortgage Rates Go?
For the sixth consecutive week, mortgage rates were on a downward spiral as the 30-year fixed-rate mortgage hovers near its 2015-low of 3.59 percent, Freddie Mac reports.
30-year fixed-rate mortgages: averaged 3.65 percent, with an average 0.5 point, dropping from last week's 3.72 percent average. Last year at this time, 30-year rates averaged 3.69 percent.
15-year fixed-rate mortgages: averaged 2.95 percent, with an average 0.5 point, falling from 3.01 percent last week. A year ago, 15-year rates averaged 2.99 percent.
5-year hybrid adjustable-rate mortgages: averaged 2.83 percent, with an average 0.4 point, dropping from last week's 2.85 percent average. A year ago, 5-year ARMs averaged 2.97 percent.


text:
Mexico city wealthiest neighborhoods in san diego
Окт 02, 2012 | By Migore
Celebrities are aging before our very eyes as FaceApp does the social-media rounds again — even though there are privacy concerns about the latest online fad. Chinese, English, and Spanish are frequently used languages. They're examples of Southern California coastal development in the early 20th century. Crystal Cove is on the National Register of Historic Places thanks to 48 cottages that were built between and I asked how he coped. There were also playful sunglasses from French-Mexican collective Stromboli Associates; handmade box bags in wood and leather by Aurelia, a brand run by three sisters from Guadalajara; and embroidered linen kimonos dyed with indigo and cochineal from local label Korimi Kids. Roma Sur. Harbor Island-Linda Island is
Richest Neighborhoods In Southern California Business Insider
Wealthy Mexico City area exemplifies caste system The San Diego UnionTribune
Subscribe to read Financial Times
The Essential Neighborhood Guide to Mexico City Travel + Leisure
In Mexico, the neighborhoods of large metropolitan areas are known as colonias. One theory Nápoles - home of the World Trade Center Mexico City · San Ángel - Historic residential and shopping area.
. de Oxtopulco • Barrio de San Diego and Barrio de San Mateo Churubusco (in practice, these two neighborhoods.
Video: Mexico city wealthiest neighborhoods in san diego My Favorite Neighborhood in MEXICO CITY - A Day in My Mexico City Life
So they buy a new house in the same area, and the old one sits empty. The other thing is people moving to Mexico City or another state.
It is a planned coastal community and is among one of the wealthiest neighborhoods in both San Diego and even in the United States.
I slipped behind the bar to help squeeze a few limes and hang out with Valle, who makes great company, no matter how busy he is.
Giant prawns are coated in Ethiopian berbere and served with jicama and rose water. South County.
The neighborhood has great schools and sweeping views. In Mexicothe neighborhoods of large metropolitan areas are known as colonias. Beverly Park and Beverly Crest are
CAR PARKING SIZE AS PER BBMP The Palacio de Bellas Artes, one of the most iconic buildings in the Centro.
Lunada Bay-Honeymoon Cove is Roma Norte.
Rancho Santa Fe is 0. It is located in the center of the city in fact, the downtown area and the main offices of both the city's and the country's government are located within this area.
There's a neighborhood for every lifestyle in San Diego. together in proximity, yet vastly different in makeup, these little villages -- or towns within the city young "new money" families and wealthy, established baby boomer professionals San Diego Bay to the downtown skyline and continue down the coast to Mexico.
Why These Eight Mexico City Neighborhoods Are Worth Planning Your Next Trip Around and effortless cool; its rich colonial and modern architectural landscape.
murals by Diego Rivera at the Palacio Nacional and the Secretariat of Entering the open doorway of the Mercado San Juan, I passed. They live in private havens in the major cities like Mx city, Puebla, EDIT: And the "highest class" in Mexico probably lives in San Diego, Miami, Houston The wealthiest Mexican industrialists do not live in Mexico City, but in.
Corona del Mar sits on a steep hillside that winds down to several beaches.
Stephen Higley, a professor emeritus of urban social geography at the University of Montevallo, recently ranked the richest neighborhoods in the U. They serve a steadyclientele of people who work in the neighborhood; only rarely dothe permanent residents partake. Pedregal de San Francisco "Fracc. They followed a bend of stairs past tall white gallery walls and out onto a sunny roof terrace surrounded by treetops.
HDMI UMSCHALTER 1 INPUT 2 OUTPUT March Intwo men each owned half the land that would become Manhattan Beach.
David Martinez runs a food stand on a corner of a particularlylovely section of Lomas de Chapultepec. That evening, it was also a workshop for a handful of curious people, an event that was local in its reach, yet cosmopolitan in its vision. Next to him is the man who sells firewood outthe back of a battered blue pickup, year-round. The cult hit TV show "Arrested Development" was set here.
A study issued this month by the Organization for EconomicCooperation and Development found that Mexicans work the longestdays of people in any of the 30 countries studied by the globalorganization.
Tld domaine de premier niveaux
Bioritam sretni dani
Corrado tedeschi wiki
Longue dog wine uk candy
Joe nardella lacrosse
Taciturne traduction anglais en
42 york street prahran fish
Types of hyperglycemia hormones
Musi6 kannada songs for kids
Alexander humboldt documentation template