This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 0068828a94 [Feature](insert) support insert overwrite stmt (#19616)
0068828a94 is described below
commit 0068828a943b33cfe78b1a5f918486eb5443afb1
Author: nanfeng <[email protected]>
AuthorDate: Sun May 14 20:01:30 2023 +0800
[Feature](insert) support insert overwrite stmt (#19616)
---
fe/fe-core/src/main/cup/sql_parser.cup | 12 +-
.../main/java/org/apache/doris/alter/Alter.java | 9 +-
.../doris/analysis/AddPartitionLikeClause.java | 61 ++++++
.../doris/analysis/CreateTableAsSelectStmt.java | 3 +-
.../doris/analysis/InsertOverwriteTableStmt.java | 73 +++++++
.../apache/doris/analysis/NativeInsertStmt.java | 14 +-
.../org/apache/doris/analysis/PartitionDesc.java | 9 +
.../main/java/org/apache/doris/catalog/Env.java | 6 +
.../org/apache/doris/catalog/PartitionInfo.java | 2 +-
.../apache/doris/datasource/InternalCatalog.java | 46 +++++
.../java/org/apache/doris/qe/StmtExecutor.java | 221 +++++++++++++++++++--
fe/fe-core/src/main/jflex/sql_scanner.flex | 1 +
.../insert_overwrite_table_list.out | 47 +++++
.../insert_overwrite_table_range.out | 47 +++++
.../data/insert_overwrite_p0/large_wide_table.out | 103 ++++++++++
.../suites/insert_overwrite_p0/ddl/create.sql | 194 ++++++++++++++++++
.../insert_overwrite_p0/ddl/insert_overwrite.sql | 1 +
.../insert_overwrite_table_list.groovy | 163 +++++++++++++++
.../insert_overwrite_table_range.groovy | 163 +++++++++++++++
.../insert_overwrite_p0/large_wide_table.groovy | 30 +++
20 files changed, 1184 insertions(+), 21 deletions(-)
diff --git a/fe/fe-core/src/main/cup/sql_parser.cup
b/fe/fe-core/src/main/cup/sql_parser.cup
index 613eb96615..28319e127b 100644
--- a/fe/fe-core/src/main/cup/sql_parser.cup
+++ b/fe/fe-core/src/main/cup/sql_parser.cup
@@ -484,6 +484,7 @@ terminal String
KW_OUTER,
KW_OUTFILE,
KW_OVER,
+ KW_OVERWRITE,
KW_PARAMETER,
KW_PARTITION,
KW_PARTITIONS,
@@ -656,7 +657,7 @@ nonterminal StatementBase stmt, show_stmt, show_param,
help_stmt, load_stmt,
use_stmt, kill_stmt, drop_stmt, recover_stmt, grant_stmt, revoke_stmt,
create_stmt, set_stmt, sync_stmt, cancel_stmt, cancel_param, delete_stmt,
switch_stmt, transaction_stmt, unsupported_stmt, export_stmt, admin_stmt,
truncate_stmt,
import_columns_stmt, import_delete_on_stmt, import_sequence_stmt,
import_where_stmt, install_plugin_stmt, uninstall_plugin_stmt,
- import_preceding_filter_stmt, unlock_tables_stmt, lock_tables_stmt,
refresh_stmt, clean_stmt, analyze_stmt, show_mtmv_stmt, kill_analysis_job_stmt;
+ import_preceding_filter_stmt, unlock_tables_stmt, lock_tables_stmt,
refresh_stmt, clean_stmt, analyze_stmt, show_mtmv_stmt, kill_analysis_job_stmt,
insert_overwrite_stmt;
nonterminal FromClause opt_using_clause;
@@ -1124,6 +1125,8 @@ stmt ::=
{: RESULT = stmt; :}
| insert_stmt : stmt
{: RESULT = stmt; :}
+ | insert_overwrite_stmt : stmt
+ {: RESULT = stmt; :}
| update_stmt : stmt
{: RESULT = stmt; :}
| backup_stmt : stmt
@@ -4480,6 +4483,13 @@ use_stmt ::=
RESULT = new UseStmt(ctl, db);
:}
;
+// Insert overwrite statement
+insert_overwrite_stmt ::=
+ KW_INSERT KW_OVERWRITE KW_TABLE insert_target:target opt_with_label:label
opt_col_list:cols opt_plan_hints:hints insert_source:source
+ {:
+ RESULT = new InsertOverwriteTableStmt(target, label, cols, source,
hints);
+ :}
+ ;
// Insert statement
insert_stmt ::=
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
index 3b855cecb4..bd4b86b1fd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
@@ -18,6 +18,7 @@
package org.apache.doris.alter;
import org.apache.doris.analysis.AddPartitionClause;
+import org.apache.doris.analysis.AddPartitionLikeClause;
import org.apache.doris.analysis.AlterClause;
import org.apache.doris.analysis.AlterSystemStmt;
import org.apache.doris.analysis.AlterTableStmt;
@@ -260,7 +261,7 @@ public class Alter {
}
} else if (alterClause instanceof
DropPartitionFromIndexClause) {
// do nothing
- } else if (alterClause instanceof AddPartitionClause) {
+ } else if (alterClause instanceof AddPartitionClause ||
alterClause instanceof AddPartitionLikeClause) {
needProcessOutsideTableLock = true;
} else {
throw new DdlException("Invalid alter operation: " +
alterClause.getOpType());
@@ -484,6 +485,12 @@ public class Alter {
(OlapTable) db.getTableOrMetaException(tableName,
TableType.OLAP));
}
Env.getCurrentEnv().addPartition(db, tableName,
(AddPartitionClause) alterClause);
+ } else if (alterClause instanceof AddPartitionLikeClause) {
+ if (!((AddPartitionLikeClause)
alterClause).getIsTempPartition()) {
+ DynamicPartitionUtil.checkAlterAllowed(
+ (OlapTable) db.getTableOrMetaException(tableName,
TableType.OLAP));
+ }
+ Env.getCurrentEnv().addPartitionLike(db, tableName,
(AddPartitionLikeClause) alterClause);
} else if (alterClause instanceof ModifyPartitionClause) {
ModifyPartitionClause clause = ((ModifyPartitionClause)
alterClause);
Map<String, String> properties = clause.getProperties();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionLikeClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionLikeClause.java
new file mode 100644
index 0000000000..a414ed7992
--- /dev/null
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AddPartitionLikeClause.java
@@ -0,0 +1,61 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.analysis;
+
+import org.apache.doris.alter.AlterOpType;
+import org.apache.doris.common.AnalysisException;
+
+import lombok.Getter;
+
+public class AddPartitionLikeClause extends AlterTableClause {
+ @Getter
+ private final String partitionName;
+
+ @Getter
+ private final String existedPartitionName;
+
+ @Getter
+ private final Boolean isTempPartition;
+
+ public AddPartitionLikeClause(String partitionName,
+ String existedPartitionName,
+ boolean isTempPartition) {
+ super(AlterOpType.ADD_PARTITION);
+ this.partitionName = partitionName;
+ this.existedPartitionName = existedPartitionName;
+ this.isTempPartition = isTempPartition;
+ this.needTableStable = false;
+ }
+
+ @Override
+ public void analyze(Analyzer analyzer) throws AnalysisException {
+ }
+
+ @Override
+ public String toSql() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("ADD PARTITION ").append(partitionName).append(" LIKE ");
+ sb.append(existedPartitionName);
+ return sb.toString();
+ }
+
+ @Override
+ public String toString() {
+ return toSql();
+ }
+}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
index 88dc3735fa..2d6ee678db 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableAsSelectStmt.java
@@ -51,7 +51,8 @@ public class CreateTableAsSelectStmt extends DdlStmt {
this.createTableStmt = createTableStmt;
this.columnNames = columnNames;
this.queryStmt = queryStmt;
- this.insertStmt = new NativeInsertStmt(createTableStmt.getDbTbl(),
queryStmt);
+ this.insertStmt = new NativeInsertStmt(createTableStmt.getDbTbl(),
null, null,
+ queryStmt, null, columnNames);
}
/**
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/InsertOverwriteTableStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/InsertOverwriteTableStmt.java
new file mode 100644
index 0000000000..a34c2cab0b
--- /dev/null
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/InsertOverwriteTableStmt.java
@@ -0,0 +1,73 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.analysis;
+
+import org.apache.doris.common.UserException;
+
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class InsertOverwriteTableStmt extends DdlStmt {
+
+ private final InsertTarget target;
+
+ @Getter
+ private final String label;
+
+ @Getter
+ private final List<String> cols;
+
+ private final InsertSource source;
+
+ @Getter
+ private final List<String> hints;
+
+ public InsertOverwriteTableStmt(InsertTarget target, String label,
List<String> cols, InsertSource source,
+ List<String> hints) {
+ this.target = target;
+ this.label = label;
+ this.cols = cols;
+ this.source = source;
+ this.hints = hints;
+ }
+
+ public String getDb() {
+ return target.getTblName().getDb();
+ }
+
+ public String getTbl() {
+ return target.getTblName().getTbl();
+ }
+
+ public QueryStmt getQueryStmt() {
+ return source.getQueryStmt();
+ }
+
+ public List<String> getPartitionNames() {
+ if (target.getPartitionNames() == null) {
+ return new ArrayList<>();
+ }
+ return target.getPartitionNames().getPartitionNames();
+ }
+
+ @Override
+ public void analyze(Analyzer analyzer) throws UserException {
+ }
+}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java
index 19899ad915..13a1a2b30f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/NativeInsertStmt.java
@@ -144,13 +144,17 @@ public class NativeInsertStmt extends InsertStmt {
&& ((SelectStmt) queryStmt).getTableRefs().isEmpty());
}
- // Ctor for CreateTableAsSelectStmt
- public NativeInsertStmt(TableName name, QueryStmt queryStmt) {
+ // Ctor for CreateTableAsSelectStmt and InsertOverwriteTableStmt
+ public NativeInsertStmt(TableName name, PartitionNames
targetPartitionNames, LabelName label,
+ QueryStmt queryStmt, List<String> planHints, List<String>
targetColumnNames) {
this.tblName = name;
- this.targetPartitionNames = null;
- this.targetColumnNames = null;
+ this.targetPartitionNames = targetPartitionNames;
+ this.label = label;
this.queryStmt = queryStmt;
- this.planHints = null;
+ this.planHints = planHints;
+ this.targetColumnNames = targetColumnNames;
+ this.isValuesOrConstantSelect = (queryStmt instanceof SelectStmt
+ && ((SelectStmt) queryStmt).getTableRefs().isEmpty());
}
public boolean isValuesOrConstantSelect() {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionDesc.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionDesc.java
index 0c2c3b2922..8ea13cc50f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionDesc.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/PartitionDesc.java
@@ -71,6 +71,15 @@ public class PartitionDesc {
return this.singlePartitionDescs;
}
+ public SinglePartitionDesc getSinglePartitionDescByName(String
partitionName) {
+ for (SinglePartitionDesc singlePartitionDesc :
this.singlePartitionDescs) {
+ if (singlePartitionDesc.getPartitionName().equals(partitionName)) {
+ return singlePartitionDesc;
+ }
+ }
+ return null;
+ }
+
public List<String> getPartitionColNames() {
return partitionColNames;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index ee4a092ae8..0edd2536fd 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -24,6 +24,7 @@ import org.apache.doris.alter.MaterializedViewHandler;
import org.apache.doris.alter.SchemaChangeHandler;
import org.apache.doris.alter.SystemHandler;
import org.apache.doris.analysis.AddPartitionClause;
+import org.apache.doris.analysis.AddPartitionLikeClause;
import org.apache.doris.analysis.AdminCheckTabletsStmt;
import org.apache.doris.analysis.AdminCheckTabletsStmt.CheckType;
import org.apache.doris.analysis.AdminCleanTrashStmt;
@@ -2713,6 +2714,11 @@ public class Env {
getInternalCatalog().addPartition(db, tableName, addPartitionClause);
}
+ public void addPartitionLike(Database db, String tableName,
AddPartitionLikeClause addPartitionLikeClause)
+ throws DdlException {
+ getInternalCatalog().addPartitionLike(db, tableName,
addPartitionLikeClause);
+ }
+
public void replayAddPartition(PartitionPersistInfo info) throws
MetaNotFoundException {
getInternalCatalog().replayAddPartition(info);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java
index 8333b2ef2d..f5a7009d6b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java
@@ -318,7 +318,7 @@ public class PartitionInfo implements Writable {
if (expr == MaxLiteral.MAX_VALUE) {
return PartitionValue.MAX_VALUE;
} else if (expr instanceof DateLiteral) {
- return new PartitionValue(expr.toSql());
+ return new PartitionValue(expr.getStringValue());
} else {
return new PartitionValue(expr.getRealValue().toString());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index 705d3193bc..afade5022e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -18,6 +18,7 @@
package org.apache.doris.datasource;
import org.apache.doris.analysis.AddPartitionClause;
+import org.apache.doris.analysis.AddPartitionLikeClause;
import org.apache.doris.analysis.AddRollupClause;
import org.apache.doris.analysis.AlterClause;
import org.apache.doris.analysis.AlterDatabaseQuotaStmt;
@@ -1254,6 +1255,51 @@ public class InternalCatalog implements
CatalogIf<Database> {
}
}
+ public void addPartitionLike(Database db, String tableName,
AddPartitionLikeClause addPartitionLikeClause)
+ throws DdlException {
+ try {
+ Table table = db.getTableOrDdlException(tableName);
+
+ if (table.getType() != TableType.OLAP) {
+ throw new DdlException("Only support create partition from a
OLAP table");
+ }
+
+ // Lock the table to prevent other SQL from performing write
operation during table structure modification
+ AddPartitionClause clause = null;
+ table.readLock();
+ try {
+ String partitionName =
addPartitionLikeClause.getPartitionName();
+ String existedName =
addPartitionLikeClause.getExistedPartitionName();
+ OlapTable olapTable = (OlapTable) table;
+ Partition part = olapTable.getPartition(existedName);
+ if (part == null) {
+ throw new DdlException("Failed to ADD PARTITION" +
partitionName + " LIKE "
+ + existedName + ". Reason: " + "partition " +
existedName + "not exist");
+ }
+ PartitionInfo partitionInfo = olapTable.getPartitionInfo();
+ PartitionDesc partitionDesc =
partitionInfo.toPartitionDesc((OlapTable) table);
+ SinglePartitionDesc oldPartitionDesc =
partitionDesc.getSinglePartitionDescByName(existedName);
+ if (oldPartitionDesc == null) {
+ throw new DdlException("Failed to ADD PARTITION" +
partitionName + " LIKE "
+ + existedName + ". Reason: " + "partition " +
existedName + "desc not exist");
+ }
+ DistributionDesc distributionDesc =
part.getDistributionInfo().toDistributionDesc();
+ SinglePartitionDesc newPartitionDesc = new
SinglePartitionDesc(false, partitionName,
+ oldPartitionDesc.getPartitionKeyDesc(),
oldPartitionDesc.getProperties());
+ Map<String, String> properties =
newPartitionDesc.getProperties();
+ clause = new AddPartitionClause(newPartitionDesc,
distributionDesc,
+ properties,
addPartitionLikeClause.getIsTempPartition());
+ } finally {
+ table.readUnlock();
+ }
+ addPartition(db, tableName, clause);
+
+ } catch (UserException e) {
+ throw new DdlException("Failed to ADD PARTITION " +
addPartitionLikeClause.getPartitionName()
+ + " LIKE " +
addPartitionLikeClause.getExistedPartitionName() + ". Reason: " +
e.getMessage());
+ }
+ }
+
public void addPartition(Database db, String tableName, AddPartitionClause
addPartitionClause) throws DdlException {
SinglePartitionDesc singlePartitionDesc =
addPartitionClause.getSingeRangePartitionDesc();
DistributionDesc distributionDesc =
addPartitionClause.getDistributionDesc();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index 9d40ec6ba0..3a02eb67c0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -17,31 +17,42 @@
package org.apache.doris.qe;
+import org.apache.doris.analysis.AddPartitionLikeClause;
+import org.apache.doris.analysis.AlterClause;
+import org.apache.doris.analysis.AlterTableStmt;
import org.apache.doris.analysis.AnalyzeStmt;
import org.apache.doris.analysis.Analyzer;
import org.apache.doris.analysis.ArrayLiteral;
import org.apache.doris.analysis.CreateTableAsSelectStmt;
+import org.apache.doris.analysis.CreateTableLikeStmt;
import org.apache.doris.analysis.DdlStmt;
import org.apache.doris.analysis.DecimalLiteral;
import org.apache.doris.analysis.DeleteStmt;
+import org.apache.doris.analysis.DropPartitionClause;
import org.apache.doris.analysis.DropTableStmt;
import org.apache.doris.analysis.ExecuteStmt;
import org.apache.doris.analysis.ExplainOptions;
import org.apache.doris.analysis.ExportStmt;
import org.apache.doris.analysis.Expr;
import org.apache.doris.analysis.FloatLiteral;
+import org.apache.doris.analysis.InsertOverwriteTableStmt;
import org.apache.doris.analysis.InsertStmt;
import org.apache.doris.analysis.KillStmt;
+import org.apache.doris.analysis.LabelName;
import org.apache.doris.analysis.LiteralExpr;
import org.apache.doris.analysis.LoadStmt;
import org.apache.doris.analysis.LoadType;
import org.apache.doris.analysis.LockTablesStmt;
+import org.apache.doris.analysis.NativeInsertStmt;
import org.apache.doris.analysis.NullLiteral;
import org.apache.doris.analysis.OutFileClause;
+import org.apache.doris.analysis.PartitionNames;
import org.apache.doris.analysis.PrepareStmt;
import org.apache.doris.analysis.Queriable;
import org.apache.doris.analysis.QueryStmt;
import org.apache.doris.analysis.RedirectStatus;
+import org.apache.doris.analysis.ReplacePartitionClause;
+import org.apache.doris.analysis.ReplaceTableClause;
import org.apache.doris.analysis.SelectListItem;
import org.apache.doris.analysis.SelectStmt;
import org.apache.doris.analysis.SetOperationStmt;
@@ -166,6 +177,7 @@ import java.io.StringReader;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -657,6 +669,8 @@ public class StmtExecutor {
handleTransactionStmt();
} else if (parsedStmt instanceof CreateTableAsSelectStmt) {
handleCtasStmt();
+ } else if (parsedStmt instanceof InsertOverwriteTableStmt) {
+ handleIotStmt();
} else if (parsedStmt instanceof InsertStmt) { // Must ahead of
DdlStmt because InsertStmt is its subclass
InsertStmt insertStmt = (InsertStmt) parsedStmt;
if (insertStmt.needLoadManager()) {
@@ -855,7 +869,8 @@ public class StmtExecutor {
if (parsedStmt instanceof QueryStmt
|| (parsedStmt instanceof InsertStmt && !((InsertStmt)
parsedStmt).needLoadManager())
- || parsedStmt instanceof CreateTableAsSelectStmt) {
+ || parsedStmt instanceof CreateTableAsSelectStmt
+ || parsedStmt instanceof InsertOverwriteTableStmt) {
if (Config.enable_resource_group &&
context.sessionVariable.enablePipelineEngine()) {
analyzer.setResourceGroups(analyzer.getEnv().getResourceGroupMgr()
.getResourceGroup(context.sessionVariable.resourceGroup));
@@ -866,6 +881,10 @@ public class StmtExecutor {
if (parsedStmt instanceof QueryStmt) {
queryStmt = (QueryStmt) parsedStmt;
queryStmt.getTables(analyzer, false, tableMap,
parentViewNameSet);
+ } else if (parsedStmt instanceof InsertOverwriteTableStmt) {
+ InsertOverwriteTableStmt parsedStmt =
(InsertOverwriteTableStmt) this.parsedStmt;
+ queryStmt = parsedStmt.getQueryStmt();
+ queryStmt.getTables(analyzer, false, tableMap,
parentViewNameSet);
} else if (parsedStmt instanceof CreateTableAsSelectStmt) {
CreateTableAsSelectStmt parsedStmt = (CreateTableAsSelectStmt)
this.parsedStmt;
queryStmt = parsedStmt.getQueryStmt();
@@ -2096,21 +2115,21 @@ public class StmtExecutor {
// Maybe our bug
LOG.warn("CTAS create table error, stmt={}",
originStmt.originStmt, e);
context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ return;
}
// after success create table insert data
- if (MysqlStateType.OK.equals(context.getState().getStateType())) {
- try {
- parsedStmt = ctasStmt.getInsertStmt();
- parsedStmt.setUserInfo(context.getCurrentUserIdentity());
- execute();
- if
(MysqlStateType.ERR.equals(context.getState().getStateType())) {
- LOG.warn("CTAS insert data error, stmt={}",
ctasStmt.toSql());
-
handleCtasRollback(ctasStmt.getCreateTableStmt().getDbTbl());
- }
- } catch (Exception e) {
- LOG.warn("CTAS insert data error, stmt={}", ctasStmt.toSql(),
e);
+ try {
+ parsedStmt = ctasStmt.getInsertStmt();
+ parsedStmt.setUserInfo(context.getCurrentUserIdentity());
+ execute();
+ if (MysqlStateType.ERR.equals(context.getState().getStateType())) {
+ LOG.warn("CTAS insert data error, stmt={}", ctasStmt.toSql());
handleCtasRollback(ctasStmt.getCreateTableStmt().getDbTbl());
}
+ } catch (Exception e) {
+ LOG.warn("CTAS insert data error, stmt={}", ctasStmt.toSql(), e);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ handleCtasRollback(ctasStmt.getCreateTableStmt().getDbTbl());
}
}
@@ -2127,6 +2146,184 @@ public class StmtExecutor {
}
}
+ private void handleIotStmt() {
+ InsertOverwriteTableStmt iotStmt = (InsertOverwriteTableStmt)
this.parsedStmt;
+ if (iotStmt.getPartitionNames().size() == 0) {
+ // insert overwrite table
+ handleOverwriteTable(iotStmt);
+ } else {
+ // insert overwrite table with partition
+ handleOverwritePartition(iotStmt);
+ }
+ }
+
+ private void handleOverwriteTable(InsertOverwriteTableStmt iotStmt) {
+ UUID uuid = UUID.randomUUID();
+ // to comply with naming rules
+ TableName tmpTableName = new TableName(null, iotStmt.getDb(),
"tmp_table_" + uuid.toString().replace('-', '_'));
+ TableName targetTableName = new TableName(null, iotStmt.getDb(),
iotStmt.getTbl());
+ try {
+ // create a tmp table with uuid
+ parsedStmt = new CreateTableLikeStmt(false, tmpTableName,
targetTableName, null, false);
+ parsedStmt.setUserInfo(context.getCurrentUserIdentity());
+ execute();
+ // if create tmp table err, return
+ if (MysqlStateType.ERR.equals(context.getState().getStateType())) {
+ // There is already an error message in the execute()
function, so there is no need to set it here
+ LOG.warn("IOT create table error, stmt={}",
originStmt.originStmt);
+ return;
+ }
+ } catch (Exception e) {
+ // Maybe our bug
+ LOG.warn("IOT create a tmp table error, stmt={}",
originStmt.originStmt, e);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ return;
+ }
+ // after success create table insert data
+ try {
+ parsedStmt = new NativeInsertStmt(tmpTableName, null, new
LabelName(iotStmt.getDb(), iotStmt.getLabel()),
+ iotStmt.getQueryStmt(), iotStmt.getHints(),
iotStmt.getCols());
+ parsedStmt.setUserInfo(context.getCurrentUserIdentity());
+ execute();
+ if (MysqlStateType.ERR.equals(context.getState().getStateType())) {
+ LOG.warn("IOT insert data error, stmt={}", parsedStmt.toSql());
+ handleIotRollback(tmpTableName);
+ return;
+ }
+ } catch (Exception e) {
+ LOG.warn("IOT insert data error, stmt={}", parsedStmt.toSql(), e);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ handleIotRollback(tmpTableName);
+ return;
+ }
+
+ // overwrite old table with tmp table
+ try {
+ List<AlterClause> ops = new ArrayList<>();
+ Map<String, String> properties = new HashMap<>();
+ properties.put("swap", "false");
+ ops.add(new ReplaceTableClause(tmpTableName.getTbl(), properties));
+ parsedStmt = new AlterTableStmt(targetTableName, ops);
+ parsedStmt.setUserInfo(context.getCurrentUserIdentity());
+ execute();
+ if (MysqlStateType.ERR.equals(context.getState().getStateType())) {
+ LOG.warn("IOT overwrite table error, stmt={}",
parsedStmt.toSql());
+ handleIotRollback(tmpTableName);
+ return;
+ }
+ context.getState().setOk();
+ } catch (Exception e) {
+ // Maybe our bug
+ LOG.warn("IOT overwrite table error, stmt={}", parsedStmt.toSql(),
e);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ handleIotRollback(tmpTableName);
+ }
+
+ }
+
+ private void handleOverwritePartition(InsertOverwriteTableStmt iotStmt) {
+ TableName targetTableName = new TableName(null, iotStmt.getDb(),
iotStmt.getTbl());
+ List<String> partitionNames = iotStmt.getPartitionNames();
+ List<String> tempPartitionName = new ArrayList<>();
+ try {
+ // create tmp partitions with uuid
+ for (String partitionName : partitionNames) {
+ UUID uuid = UUID.randomUUID();
+ // to comply with naming rules
+ String tempPartName = "tmp_partition_" +
uuid.toString().replace('-', '_');
+ List<AlterClause> ops = new ArrayList<>();
+ ops.add(new AddPartitionLikeClause(tempPartName,
partitionName, true));
+ parsedStmt = new AlterTableStmt(targetTableName, ops);
+ parsedStmt.setUserInfo(context.getCurrentUserIdentity());
+ execute();
+ if
(MysqlStateType.ERR.equals(context.getState().getStateType())) {
+ LOG.warn("IOT create tmp partitions error, stmt={}",
originStmt.originStmt);
+ handleIotPartitionRollback(targetTableName,
tempPartitionName);
+ return;
+ }
+ // only when execution succeeded, put the temp partition name
into list
+ tempPartitionName.add(tempPartName);
+ }
+ } catch (Exception e) {
+ // Maybe our bug
+ LOG.warn("IOT create tmp table partitions error, stmt={}",
originStmt.originStmt, e);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ handleIotPartitionRollback(targetTableName, tempPartitionName);
+ return;
+ }
+ // after success add tmp partitions
+ try {
+ parsedStmt = new NativeInsertStmt(targetTableName, new
PartitionNames(true, tempPartitionName),
+ new LabelName(iotStmt.getDb(), iotStmt.getLabel()),
iotStmt.getQueryStmt(),
+ iotStmt.getHints(), iotStmt.getCols());
+ parsedStmt.setUserInfo(context.getCurrentUserIdentity());
+ execute();
+ if (MysqlStateType.ERR.equals(context.getState().getStateType())) {
+ LOG.warn("IOT insert data error, stmt={}", parsedStmt.toSql());
+ handleIotPartitionRollback(targetTableName, tempPartitionName);
+ return;
+ }
+ } catch (Exception e) {
+ LOG.warn("IOT insert data error, stmt={}", parsedStmt.toSql(), e);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ handleIotPartitionRollback(targetTableName, tempPartitionName);
+ return;
+ }
+
+ // overwrite old partition with tmp partition
+ try {
+ List<AlterClause> ops = new ArrayList<>();
+ Map<String, String> properties = new HashMap<>();
+ properties.put("use_temp_partition_name", "false");
+ ops.add(new ReplacePartitionClause(new PartitionNames(false,
partitionNames),
+ new PartitionNames(true, tempPartitionName), properties));
+ parsedStmt = new AlterTableStmt(targetTableName, ops);
+ parsedStmt.setUserInfo(context.getCurrentUserIdentity());
+ execute();
+ if (MysqlStateType.ERR.equals(context.getState().getStateType())) {
+ LOG.warn("IOT overwrite table partitions error, stmt={}",
parsedStmt.toSql());
+ handleIotPartitionRollback(targetTableName, tempPartitionName);
+ return;
+ }
+ context.getState().setOk();
+ } catch (Exception e) {
+ // Maybe our bug
+ LOG.warn("IOT overwrite table partitions error, stmt={}",
parsedStmt.toSql(), e);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + e.getMessage());
+ handleIotPartitionRollback(targetTableName, tempPartitionName);
+ }
+ }
+
+ private void handleIotRollback(TableName table) {
+ // insert error drop the tmp table
+ DropTableStmt dropTableStmt = new DropTableStmt(true, table, true);
+ try {
+ Analyzer tempAnalyzer = new Analyzer(Env.getCurrentEnv(), context);
+ dropTableStmt.analyze(tempAnalyzer);
+ DdlExecutor.execute(context.getEnv(), dropTableStmt);
+ } catch (Exception ex) {
+ LOG.warn("IOT drop table error, stmt={}", parsedStmt.toSql(), ex);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + ex.getMessage());
+ }
+ }
+
+ private void handleIotPartitionRollback(TableName targetTableName,
List<String> tempPartitionNames) {
+ // insert error drop the tmp partitions
+ try {
+ for (String partitionName : tempPartitionNames) {
+ List<AlterClause> ops = new ArrayList<>();
+ ops.add(new DropPartitionClause(true, partitionName, true,
true));
+ AlterTableStmt dropTablePartitionStmt = new
AlterTableStmt(targetTableName, ops);
+ Analyzer tempAnalyzer = new Analyzer(Env.getCurrentEnv(),
context);
+ dropTablePartitionStmt.analyze(tempAnalyzer);
+ DdlExecutor.execute(context.getEnv(), dropTablePartitionStmt);
+ }
+ } catch (Exception ex) {
+ LOG.warn("IOT drop partitions error, stmt={}", parsedStmt.toSql(),
ex);
+ context.getState().setError(ErrorCode.ERR_UNKNOWN_ERROR,
"Unexpected exception: " + ex.getMessage());
+ }
+ }
+
public Data.PQueryStatistics getQueryStatisticsForAuditLog() {
if (statisticsForAuditLog == null) {
statisticsForAuditLog = Data.PQueryStatistics.newBuilder();
diff --git a/fe/fe-core/src/main/jflex/sql_scanner.flex
b/fe/fe-core/src/main/jflex/sql_scanner.flex
index 2ef6f2c9fc..34d6eb5d57 100644
--- a/fe/fe-core/src/main/jflex/sql_scanner.flex
+++ b/fe/fe-core/src/main/jflex/sql_scanner.flex
@@ -341,6 +341,7 @@ import org.apache.doris.qe.SqlModeHelper;
keywordMap.put("outer", new Integer(SqlParserSymbols.KW_OUTER));
keywordMap.put("outfile", new Integer(SqlParserSymbols.KW_OUTFILE));
keywordMap.put("over", new Integer(SqlParserSymbols.KW_OVER));
+ keywordMap.put("overwrite", new
Integer(SqlParserSymbols.KW_OVERWRITE));
keywordMap.put("parameter", new
Integer(SqlParserSymbols.KW_PARAMETER));
keywordMap.put("partition", new
Integer(SqlParserSymbols.KW_PARTITION));
keywordMap.put("partitions", new
Integer(SqlParserSymbols.KW_PARTITIONS));
diff --git
a/regression-test/data/insert_overwrite_p0/insert_overwrite_table_list.out
b/regression-test/data/insert_overwrite_p0/insert_overwrite_table_list.out
new file mode 100644
index 0000000000..cabcaf52d3
--- /dev/null
+++ b/regression-test/data/insert_overwrite_p0/insert_overwrite_table_list.out
@@ -0,0 +1,47 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !select --
+
+-- !select --
+1 aaa aaa
+4 ccc ccc
+
+-- !select --
+1 aaa aaa
+
+-- !select --
+1 aaa aaa
+4 ccc ccc
+
+-- !select --
+1 aaa \N
+4 ccc \N
+
+-- !select --
+1 aaa aaa
+4 ccc ccc
+
+-- !select --
+1 aaa aaa
+4 ccc ccc
+
+-- !select --
+1 aaa aaa
+4 ccc ccc
+
+-- !select --
+1 aaa aaa
+
+-- !select --
+1 aaa aaa
+
+-- !select --
+4 ccc ccc
+
+-- !select --
+1 aaa \N
+4 ccc ccc
+
+-- !select --
+1 aaa aaa
+4 ccc ccc
+
diff --git
a/regression-test/data/insert_overwrite_p0/insert_overwrite_table_range.out
b/regression-test/data/insert_overwrite_p0/insert_overwrite_table_range.out
new file mode 100644
index 0000000000..1b71e2fabe
--- /dev/null
+++ b/regression-test/data/insert_overwrite_p0/insert_overwrite_table_range.out
@@ -0,0 +1,47 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !select --
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+2023-04-24T16:00 ccc ccc
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+2023-04-24T16:00 ccc ccc
+
+-- !select --
+2023-04-20T16:00 aaa \N
+2023-04-24T16:00 ccc \N
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+2023-04-24T16:00 ccc ccc
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+2023-04-24T16:00 ccc ccc
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+2023-04-24T16:00 ccc ccc
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+
+-- !select --
+2023-04-24T16:00 ccc ccc
+
+-- !select --
+2023-04-20T16:00 aaa \N
+2023-04-24T16:00 ccc ccc
+
+-- !select --
+2023-04-20T16:00 aaa aaa
+2023-04-24T16:00 ccc ccc
+
diff --git a/regression-test/data/insert_overwrite_p0/large_wide_table.out
b/regression-test/data/insert_overwrite_p0/large_wide_table.out
new file mode 100644
index 0000000000..a0ba456f5d
--- /dev/null
+++ b/regression-test/data/insert_overwrite_p0/large_wide_table.out
@@ -0,0 +1,103 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !select --
+2021-11-08T04:07:12 K2PAm5qGd9FEWFc0zll04KcdDlLvVvWhSv2yesQbLxBlP -20490
XcyZRCIZyMD7IEEwqkFErH6Mv3TGosETS9PORzfPZnUpCMAT2s7MCM2egU8RLbqSnqvDnXt5nviBVd9E
21016 JCSLYFOh2ODllzgfw42bl0N0qiAisrh1D777Fi6iWJaw2BewTmlha LrE
3518 U1bHf4CLhE3tsSup2Dr 25593
NbFbPjmf2VvTZ6dkmu8h4ie5h0ny3zl0pWgINu1Sm80tzt6YhFV3R6xyK03UneJ92Do4yRPX54YcAWUqd3jxIsej5qd
27505 UUvUJsvYt19UeBSSCyM5J17wZp42jx7pMIT6P9XrDpQjvgqRer1USZn6
-14973
4fjBNwU2VnzbCAPgFeqL3SDue9zACNDobnbi0LHmnyIutF1XkB25QhAVNJoFM84kqI4CGf7kbH2yijIdt
[...]
+2021-11-09T13:17:31 XDOGKZBF0NA9jiOWf8e7zfKQXxaG6 2835
RrPLvxT5SQlzT3rx1sXDPiaAAan8nFm59Sb9M4CmjUFMIRSTygZ6oE2RxP0GeMoD78L27OdRpnxZIjRq4HHn77RUMkJWeAqt1
15841
DiVAohhkw7DAo0WTrsRpd8uI5FWGRiGsqMDtWU7wPQtmJvvLptwrCNJtJWgb50mVecyvegr6ogcBB5dF
I5Lriy0BKl7XiBnAoDb8eer7p9DVUne616GVV7i6Gsr8u3Luvm4BRpeRJtjo691coEGOV36bgzAPCx9CdXa8eQIIzo3AJrOcwGIP2Y
-20496
RK53nGbBg4cerKVbWtLbNmQUvxOn7FsZUX8s1B4eavI9RrFHXSEhQaHQ6oB4rlhcCxpcOzy -16154
Z9JU3RzpubXp3flbScurGjVYwfod7t6BHPxpsqNZ5tRBr 2445 YFvmB9YAiySe [...]
+2021-11-10T04:34:36 Eo89K7q8jBXIuoUGcgGgNFynDZEzbJV -1163
E6O3DENtD9SKVKZxPGCO6ZKGDUMBGhzeVJ9yqdTdIHGPV0w1gFhFTJJnLD7q3KsyczHi5uMKCbGKEv73U1sg03ElTHisU38JKCp1YrIuY06VdVbzFsP
-22501
tWd9J0ErGLKPBujPoOi4MOCcns7szPW0kbkk4DVLkauRexKkpiL2PegCFMt 24777
eGDkMaAMTOAx2hE7b0f0z7SmibI6FYGzlmsS4 11877
B2LoNLjMPQ1Cfu5jA6mskJNfkA43CS8FP72 25580 eOtTQaG6Qb6Wb 25115
cOlC3C6qYUKTEN6ul0TS6bSgQ9d2SkAvv5Qw573Lo3PwIs7JY9xZgFkH4eQiwUELrPpw5ErlLOOEeY7P2XY6gPxbxdW6F6OFiR0vwbe7Rm1xYFItA8hlY
-25134 f2A70yHQIDOHB [...]
+2021-11-14T09:19:39 xQQ6PC3LS5yQ8rZJ8WwUEHzHlXtVALhQREtLy 26949
Vhe8WAGjgbR5dmQdbAJO0BYy1yrHIBj76rQQr8XayY4fHUM4E59d8yVUcikKmwmFD4 1171
e58MOhRdFTU3sZbmxwkeUjB6LW6h4b ZM2uECnYGGDHPHBZNJmUEgXrt 18077
nf04JhsLUfE19MQymQNXzdqf4dbQgDkqkjANzVOBIeV0dzfukBe 24243
GfcHuqnfse03FsdHBg4kZ5zxmS2nsPE7p2HDUrJDnQKqTNLwXQbSNb6tQMkXH2qMGJqGm6xguXVF2hZJOLUbE1ETYs1eVRr9qYV1jPkD
-6774 fi1G6SrqiCnQRMnm1nhB1g7GksQHKjQ7ktdW58gtGUb67OED7iyawkyQvPXhG
1576 o1ZJjyiF1xKOtI 18877 AtiCiduASUULmQHugEsbfZ00zQg4242J4T - [...]
+2021-11-19T19:03:26 BxAekU8KpG 22833
hI1HKHx9SpIQsEXC4f9d3yQDjLHLOkARnk1EcK6FSLrDbOnmiF0X1XoJJo 15901
G3GD5ON5dEuOi893Pw6WEYZ3jvboxiZYW2R1yGaJCUTaQY2rwrqc2Hx6LSU2Pv4XQZqlZyCvCPoN3MqwNhZWd6FVczE3OhZG1coWbErTatbFHnTYwQJn8
rcSEVKymjF633PQ5K5ID8u4h8EDGGYQwtvvyZyj4DZ7dcDH1kFcfqMCscxPwxZ0WfG8QX1TtuBVvKseQJX2U1WlZUkv6oBiFKBgZDZX2qTuQyxSPllkXIh9wHpGn2E
-31302
zr8pYxvr6VPR20UGJlCKbzPHtm4gThp3fAHauun3pElVu8S9wVQyIBeVvCTvplSW1RyZZ98IBi9r7dPFiQCma68HZ4K3yY0HzGuVGJ0Qp8jtmZz1oLLJrysZ6
15310 zWDlDh9KzB [...]
+2021-11-22T06:13:19 2AjxiQLgsGOE8KVTsqkJ3hDR3hS3063FKBdYl 5914
NTNXOZ5RIkx8xT9lg9HSyFCkfIjqUWD3xHFsR9fpKY2yqs0b7UU46bLN0 -3593
1c90BpUr8N3ldXQ1fZNxcwoppWi4P7ZGhUXgfsk3rNYguXOtDqqY2QAG5LrvVL5xmx8aAXsCH
ZxlJyfZJLyygcAv1ohmOYfQCza3Kt9VkxQJ485HcakczrX6n33LC8lpp1CIyLJlQoK0SFuYjujf
445
KfDem001MNnBZwSY8n7ykVg1ZsKbg8QdOw56Nodw6T5wjLDog8yR0mlAjrxbRA3zTPw5C78lGkUzahnu6
-26624 qzXEMGicdsE1ndzOIFW2jmJhYSqBnMCACLvIXn9Ld4dFQwZZ2kQ -18982
uLhQVVJt75X3XHwnhQ3PixHM2ouhfnyaaToIBANvHqnIWoSoHsAQUiuTBjzXgHi [...]
+2021-11-27T01:03:47 p4viYElKqNuxPD8DSzLzJDQ94kJqHv1ESq9O7gfEq 11470
6X3VRiObhxbwe7rXJPJKD2rucGwMctakfS6r9qvEiCu 21082 ijHCFmvAwnvQPxcKt7MHC
dvKU2FfgaSCHOncwJK1w1Kb2KTe89XFpfJxAwFwk2DXZFutyZeKCN5WtjHgAaF5uPIOacR9TV8liXarlSfb2T4tRN3VK
-25734 ce1uk0xHqRp7z1WIOXrW3ev2qMSXGeEmV 18099 xYkpwNRQUJfiODQHDw
3458
3yeYdwdsAAl811yiCukUdel2C6Yg75TqRCOYaAzwXKHYuKb0Agf37auLWI8UgcbXadkfe6CgJDd
-31107 nvlyGO4e -7581 QIiVDjzmUQKW1aas 32334
fjqu3N1xPixLRIOMW1NppIwTrm0qCdGy HORTbXniBeJAzKD nfrT6f55yzNHoUVOtt [...]
+2021-11-28T22:05:28 r3KZqMreYiYKZ -2066
HxR47aLs3VJVPg1f8yzKbP1efVmR2edZlnborO41Y2Q 13606
uJ3JbYW3KcgI6xE2rU1Vli5XXwnWNzkfTCu7PVD0BrM2uJ1Csewg658KgW5
xYwAyNIHar5a67ZlBduhdDHkPnkiQjJD1GDqtKkgzJHwFkxD2l 25037
L70Mzr7k1br4uVdQ0kbLPu69HEPnEGlm7FnONO3zA8QwMpYxWbhYAUaSsfrvyku 26140
s10mD5g985sTARV8HJiey -25998
ZAbci2jSwA171rZi6ZMaPoeYn6CEOpAUVPicphehoUhzUCkMI3qy6J1noGiVjcKDEuk9RIrIb2dJ3d0hb5lDAjaSbbAIZPet5dfrLs0V1Ky7P4rq9djVVB
2069 Lnv1h7G1t6x1lyUp8onLYA5SJXVcVXuL2oCPfbbtdtkyTn7x -5785
qdfySS9 [...]
+2021-12-09T21:12:55 fQ5uYcnbDGScNHON0 23419
BbqiCf1V0MyX7ShSEU8mC4OhEZTSwEDUa3KcwpRsC8gBADj90jCft3ZuzfR1wG -25427
AJxFYQ7znK8nKU3ynkcThZUQvAKOVCrY3wSpW9N7D6Ll0tsNGrfyFasGkw7MbfLqwxhcqSSmdC4c6x71RsMrH0A4Jm6hJj5XqxglCXCzpdYcKUMix8oiv
Ys6pWHTtUaZU6xlIXBKMTIbVzLMxsMafAGlqUAAJrZoS0Wa8ioTH9GDTqXUeSXE -7539
dncKcWjLHk911aMLPa6gOIYY3Uzr638CuWpm6DRStvScaYrMSikGtHZ8NA777UeBAZ7OP0N9bybYSWe4LSpH
-22298 IrNDssPhDvOLCpmCOHw5DFOWibOngULH20j4tMCxf9m -12575
K5zfIivE4TagNJWYlaAo0ulwVtNjn4ny61wuf1Bg6b6JwU0 [...]
+2021-12-25T08:29:25 cnc5B3AJRpctrvSnpLu7uxyn 19078
r061D2A8lisMaxMSAxtnouzpwOWzqOXBNwNXaaGn8hpf3EMJet4enVFOjUuMWp6KeVvRMxO5ler9UdtLDqFed9f6dSUT8LEe8PPPyaGV6CfsSBnOhcATJNYB
-9769
1vRlJG52VgDjz1LgSZ1pO7sDeOC7kb4hbEEB1joAUXm7eV2QRQXHeXtsOK5Ra3f7gDaytCY3aKrHfMNpWYQu3GKAeR3DnUVX3OgcRa
A706Ak1I2CJ0FO7H0HQOUVSCrYFaQgP040mCjLkVinz -10352
EuVe1BGrOF7FRGumirND2INaffnyM1Cik7Xi0GQwisR2MAYJ48eMWyIxKs4xTL 8088
KwXo56udJ6iTq2vievgUszps -13011 ICQsLC0 -28326
OkysqrvCIvJosJbD5SDWCjyNl3t4Nz6aM6IfEsniLhprL [...]
+2022-01-05T06:47:24 vxZ967r2Q6Zijrt -29406
n7tIdJojQMxBqf3rkZIpjcgLGhneZKEUzmpsTu0bLUlFh2K5S7FKWi6fFFK26AxmKwW1oyaZzoHF8E6
-14296
1drtGt7buZqMkeqL4MsjZ5s5xsgLnYkabfQzPLZ8TaLLkhWfuBJZ7QP2ysJ1thaq9spWmVkpXRxdnFgI3qNZYSXA29swIbGC
1LfkZBvbt8UpZ4m5JhMKytP5fXeOPSkjTUouC5oXgdhVGZLnhXl2D71R0fnAdCySAnMfbVel87TecWt2LxWJv576gW1eH
30764 g0hBpSabsCJ7of1vUdFTbyXaVBsfhZG 5429
aBiCdZB65dCV3Stfz7W30bbrsiVaJyPhsLMEW1ZrsC3OLNDsM77MY8Jq4Rs8NrW0db6ebu1AxEXjMl35MlKvXKuWqKmw9ue0rOBDWGJprPvpGvdCNUy0bED4C5
32036 [...]
+2022-01-08T04:26:20 4w1GE6tz -16364 kfMQ3 8890
2HLpYcl9EYxs5HctO75sKQMghI7MqSdkV0q tPVkn9UoBWVA7K63 18402
gPAOavyzk47tWaePQ3HSxhkQSK4YWlG0j0GZFpKdBSAKpVNUfvalBu3DpEk53simRGSdcWtWQRfTZT3McJArHzyMe99PXSL9T4QrlJReWvHdpu8
-18753 d -16866 bRWc6WRXf2Kb6bLd6rliBN6hKVnIdJTZTSX 954
gDe7gRVBSdM2tUX8TwyYNBSbA -15408
kyRMRnJDpxOBEgtUd5cfYiNwvSuWCQmiQxFqc33FDrSMsl9iA0KxX -11846
fEPHHu0D7IYydlRMmGBRTf9DqcfV5kH5T1PuFpCioW2
AeNjdKbFcpMt8M5j4oeSLj0rZrsUeLUXxj6Wju5lCe859JblKYHtqU8QJYNeUGIlwEKCfJO1t1Kf554z
[...]
+2022-01-08T13:51:22 JpSqbNn6fKihP7D4OPnpWio7PnUk4I6Vt3QJBNVIuCn32por9S
-14847 V6Pa3gRN2p0LtQ3GjkLb8W1d -170
4kY6NHunORsnfI8sPEWVLoYPLVQJ3OJjkHBgS6EnkoRcxAQj80FlMPP01dFDmDGlpH90B7BjXajhp1SSZX0LOuXQ2C959T5Dw8ZE2W
Iry0XVXy26 -31419 ApteFInKHyT4102uTNYdmvfNmzMh7a2e1Kkwst 11316
3JOEOuydoXvd8L9ZgyWIYzSbeIOrTAA4DGSEli6R2bKygR78uekSplDd -7281
GPkDlUaam1p5GC7vOrnfkrAiVZDSO1wBLVFY2GZbrg9vQzNYADHX2HE1Pin4PHQ0yvjKa2svGyWM4ZfJJnXaMT
16081 6uA6PdtgGPwkgToY9OxFRZK79xQKizHG2 16459
Wl3MhHciLJlgyRvrJ0d7Ke [...]
+2022-01-09T02:20:35 lsRnRYfA3VqacgymzR6fteEOHn6rRSxl 23306
199538Ne7jaoE9Fchaa7BlTvKCfVy0cCpgQDF2GYUQ 24002 b558a0nHFOjYjrbboXNNni
hQlx8qqGgbr 30750
c0VbEIleuv31LZsDG4mAKWqB0DReZftHM03C6AY8tvfr1w9Dik7ios9zfCli74dVkFXvJiYdvlsku4tBvSf
1112 gILPFi7smlRfSkYO0EdFLqjo9fsh2vzU0v 12720
7ZnVOp2ZfyXT8mvgeGmPJ8HjnqJn5j45mvNvW3tLo8FKsFeG -15515
qYX24nKPBwNoHv5Nv3sjj -31573
Ri87wr4F9de1u0rltWQl8OoV62gthjev0J2bYFVjNilOFFM3qHj3pqriuAWI7EpqaLbAIzf0V2jnMDgluY7D4FYErrfuaMpimR3DCQO4zrhiy4m7fcEA2
19929 T2bF [...]
+2022-01-09T04:52:40 5p -23235 TNToXiVL2i -30381
U0qIfOSIUk4edOHKWYPWCXpx1OQg
CbXrVeu1Diw9BwFUMaR160blR0NabuP467gUJMSHLhqh6lhLTkLbYx7NaNtEBFN7zJw9PaYJ
-15733
ipvzAYwKaQYYZ3ewha3SZfX42Pz57QNyVI4JuifrCBJv6SCAdk4eRp1oJJ5g9u1QNQtdVM2hSDKGVpyZKOfEuzZeq
27434
Pzvz1YKC29D1Ik6dat0M4aknJWbNALfEfH4xhZgq1p6ss6K2bWqPJXqZjHcl9fK8qvH0eCtZBKXKnyvXolnkvDQmER33ephK8qAaNR3EdsY1AsCDj9HjFoJ2Qn7DtsN
-13900
Pgms8Ss1GiwEEsNmH0LRuedUoDJryzqIzmD8BaIbhIJv0BdplWYx9biRUNoqICBTNnvekRa2RMTrDR50Dh2g04utNuuxQAg7lZBJK
-1 [...]
+2022-01-11T07:26:13 0UXRl2m7UO -7728
8A5P4Pb8pFNhtoGE4aoz2posvrkNVzCVV9Z5B41oJvL77Hh7WxDeAvtOafgijjBWGRNY9hX0ycHkPqNdip
30071
3VA4Y4GLVVlW7iy1ZSF6xFvq9NseEFousRByCx7x3MK4j2KndQh8kj4zNcZ4sniMEh12UDRItshYgTSS66DAg9
zh37zxLC5KdvSlkbp74e8tPQPJw9kuTn0KPubkYzyGPAHOrqrx3jKrjBj5hM5ubWGO5pzpfwZDan6liNs5bAsDENp9KTlcq5a0sHPu4dJpNYxq1ovLc
-3075 Qo0Wzt4DfDqBhGLU8l3y0XQztAS23GJMMp4nWbWD28y7VGPXEIWex -20480
cbfUuj6WhQI8edHI1C7aDtvpK2Pm7wHmSR5HbKcKhOJtjJ4 19482
RlLnYg5Nj0UFCuFH8wSJfxtIuxxK3LbR6n -14570 [...]
+2022-01-11T12:04:06 lc8PGjItO0QG -2114
OZkERpTy72Vu8K7HfMQJJD3hbgzKhI46O0NSOftV8LagRmDjnPLAL9XTagTmvGPj0faNPKk5OG5sYDCyMpzL5bLNR
20351 sK
f3QgIS9o09FARBFDsNmaP8IJ7zohVMrMy06OMCIX5nXrLPdj28f8J9iyiBoHiUspp4mgHNszzzdwGSU7ezNIgxinQGCJuSfrNt9bsGMmDmPOxmlkh5UtgkohD29DE1w
-1894
fTSCtph9fU56qeUxIBldvMoZxGR6NwRaLaSYc70pdSQkKDMfeQiDIuXkHdYQ1hh44cDZvQ2rZTND
-12168 RP3Foh0c2QzJbJ1HikvvzRFgbvzin4djtY8tESXWqIWP2OdvkzosTjQ6pteCAHP5g2zI
28012 X42P1hvt62nYGqZAUd3hFqT1HBgDyoSOGk4COGGmsUDNMh70tI9KXEq0D 188
[...]
+2022-01-14T09:39:52 4y83fEBqyBJGuYSU0Gf3 20469
5IaQ7rkV2S4mYhhqgzuqVWC5G -23174 fXlhKliDfwPckBmTz9XUDG2uOdEfSXMzDk0hFV
v2tMu1SNiVSaJjXALYSh36D9ClXzJRDnssktFW8ev7vFopKsS1aQRVKV2 -23499
7SjG6kIKjhIfxraM9gOFeeXcDFJCcWv02Xr3mdXQOxf9w42ifvMouoiU -12232
TVl7ObXwFgMkLHtbOk8gHEdoZNCrLMfp6oX9lNz3WodcNwoXaOma5JtXRtDKzShBNQnJuyckWWHKtdiOt
-30086
PS2zsGIKPs1QkfEuGxwZMpYx42gWChJkA9wF2frmL8G4p4E6V9GJCvBruqVmHsfk0xGj8629YRFXstrTBJ4l8RxR4ar6RO1ykx3XFVUGI
11988 m0GU367dXrqbNmlzBaeTerN5MpzYlovPnZJmg1a4sBZ [...]
+2022-01-17T02:29:57 5DAW3kO9Mkm3fxBu4s3ncOpBq07rKAY3NEIDq00IPmXuZM 21443
WfqsNkF67axNt06v0OPoQVti7sDoRN0lrJKODztmni7rZTtpKcusKBTNbLKFYfL3cnsXX8vqHQl2bVDZij2Th2B1EP5CWaMELqOFwhgxw6MzyBhxxrY
28335 qDY5vYkS
n93L7gxQT8eqYxgSFzNv0SHRbCCwhP7OUfDhB4cyZs9QrgyrAkHrKdXPrnjZKhYcXRPb0SStxPeTZh6NmOXO31dn
-17667
3U9bTKbV0Z372w0eGfkUscPKbdjk68pe3mrcgOAA9sOKEnEf80gHkaWVqOAQ1aRbWDb019RhpLCGvXUSRKl9xFXKxDmJzZjLTsjXJdVIoiq81hsEePWhnydQKmyc
-21413 9 -18895 ldyYoHUe3SFjlnnVFcqzZhGVttIYiEAy8iZhaHJ4NXaCfQop1YX
[...]
+2022-01-20T00:23:49 L5yM7bTfu1NnZZEhI7ZnM19w9usjqNPFPlWCCjGDK5Pp8 -18907
MrjGhrX1MzjVsTJVz1nlpPdNQp6YlPHq0UH0W8gepO2Gk3JNt5pyJV863tXkXin6YfggL3wTLVLDAuOlVg6gTIADyop3S66WJ7SWET0B7b3yFjkUXdKzAkDZbWtLy3
32150 jy4PiHCkOFJKNt7JV2NAGJfVJGp9920mPVm6sDSGl6cfMOSyliHPmPa
UhPInjYgRAukbLG07hzJIfJT0ZwCT9nfLoZShy5S68XGHQJz99qqp37wLrB4zupImZK9zGZej9Ns3XygRbzmf7Zdnz6kVMOj0cvccZAlz72ij7
-4329
GzmMMguGq8RGfqrO9rscexDeSeqXQytsIirnwvwh2BjonJID0mYuKtGz4KeO8cRa5T7eelhlCW1AEaVXpP6wt9gsFIFbv2m0Sq529u1rOpBCcMMWg
[...]
+2022-01-22T05:47:13 oCiuZ4 -25810 RNS3W11mdSKB -20429 L010MDuX4pl9
FKdzONe 6343 pwKlUBTmOUyLeXikuCFXexuAwcaFUYtLfFGp497 25670
g7tRcqilehV6FiYFXuRNyhkKZXozNzObpMB8NOWpNgUfitHPz6ZxXnEepkUqW3864pgqv2ghedBE08hTSb0eDzn2l1e8IAFwsmzcFOQAI
-21835
ClcWlTXF2YnTUQqI10gz8XHE26KUwfBQdQCNsshfcmQzI5eYePkmbcuGwHXihnVfrF0niEYgy71YPk5mC8SHm
-19024
GzHx5NXdTRNtP2ufdnlbeAIQQQ983MtZ0OQtrx97iXGAKXTqoJu2twyxQSVMtLK19RcqjWZBXBFyabdASfqUdChLMmfyWW
-30727 6nHt6Zv8jOrR2MCqkIbg6bmKz0bgta0e3AqaSnT5H8qPAGjkkrxpePwg5Q [...]
+2022-01-22T20:05:09 hK07bSBSTgNJz2jeGE1EHhFK -16908
ll1Kfk92PSrN8bwBnLDfOzmazdRjXxYx5fbStChmnPV03B6nroHOHzEX26Jv4wKBr6zcCqDScB
30202
sU2LNIHbzSqKvSLTOpIZ7jc5gV22hqZzL3pYnw67Lgkswp9uSza7ESmrZMYc5xnbXSrMM5yVhRlusFmfGDQl1lSkGi2N7hUKqemzVRWDhuEbbIkrAhUN
A6tjYDs1piUQeSI5lT2PcNyGmpbD98FpZOQ1DmlTezJo2sfeFApOJXGqO56I1dwMeXN6TtT6a5V2BdjzFXaf57M1gUaMP0
-11620
ZXqMPEgTPoZFEY1quVoQYfW5LIy0tB5Qa8sMXB9N518ysOc7qvHgOf9olkZFEdhXNcsjaDFZbILRH1bWBK6TWPocBrzg7UWbHr5LDTIk4FiX50rPOlAiecHeT
-29083 NQeZbYC01PB [...]
+2022-01-23T23:00:06 F0C9lsyqvJk9pA6HkTB2 3470
DmSe7DLg6qUJT0LHFuKt6G28PaikYzAaU7xkHM89QHya4AKSbg8I5nErquWoAuhjiGDjhIwR
11624
HWtf37RFcU8ioNJaY3I3MvSaPDa0Ot8XZmDR6BUUBcIntZegJGmnMj2nW0cmzdJRhKLwB8Oi0jZ2ZoBHUe9gKmJUOBfY17bLbC1ac
ZRzRIlICM4J7zwyT1vvUTXxbIKvPhnQ4QnsFmxitHIyZT0WZC0l0wWdvHYMzUbqDDDRd2W3ruLCkffh0gbUHxqgbPOkl2CileGVqsk7l3AqGHDdeZmihtqY3FP
-17665
sRThznRFOsY0O5cQ9b7TaX8Oepj2tNHdscwbhG6OX2K7y7FF40SVsImv8d839lNKnKgPZj 1990
hzuVdhBUtPn59xZPNkXLHXQWvFm6kPHIR6wcNNkLEKMv1kXLozAMaJbgLlA [...]
+2022-01-30T23:02:58 LEnxNUnOWawlPLrN1slVfIwlaCqalyBIR6Iij4ZLdS -1393
ccEdN 2873
lIj4m5cClzDz41YDlvTHyEUH3JP80W6YMQfNkrfdjoxM7I72Zn8Ly3qiRyiSXAUdebPlH7WxQh8fWMQ107
vzpnR9vDA226Mq1JeL4Cg638SDSIaKn3q7drMnUBcFGUUhJxtGZnrSYaCrPnQTfMWVX1s3PrVEm0W4RYpfR7eZpMH7y3h2f5QYzFKq5sYHPOB6LT6RlsXZu4KTehXbp
6755 vDf8jm8FI4W8tDDZbC6h0h08LVEUoEExDrvULa8AX9rhME03vMGlwtaS1sBalJjy
-13864 q6EEgyCLI3CLGkyXBJcKcyOjpW5lUY0dSygmfKzdzaQu1cUdjXktFDm94P2rBdw -6513
bYLj3zemQxxvtomvPxzxRZ9FNVo0e87nEZd5U1KpQNVDqX91UJQsIN [...]
+2022-02-02T07:22:08 Sj3gux 22846
ZvgR52avoQWESI2xAIT3omD8gzQr7a3iAAunzZ2LHG7a9S1QgYPH0bgn5XNhZjDhk2LrGBM5WAspPNj4dmkouJ8NnsvpV8OfvBkom5IdaguAKewr07JhC8ULWO6j
4128 W9F040E8SicTigci
UmVfWHr0LyITlR5Epe2mKj0D97wDVO8C7dpCwPjMOJQgEHYoUfK7zOT1wP4GbSr2JgyiaXtIv2grQWijFZhHKdpxPStE3mU2jc2ocN7pXiDOIa65IrJwqs9IGjOgZCC
-11419
k7TMYYfZfA9A4Jie1jrNl1zJSADQH47RgSuR3WpBRPvITEXI8ZuGPLggGej0hDAD8UFW29ADo8JewqYQlnKlrcosy77G6
-11222 JIP3UeeG -1527
cnMvgnqC0mK36KU5XJkd9UKuRCdBoiEQtCEYgpNvDM33rHhpwKfDhbuMST7Ht [...]
+2022-02-03T18:46:28 0XuaSYPA -9917
fAHbUN7abtHlcKjTnZ9Ed91MdaHwwg0PlykIZfcANkCKWXYz7CHwu8cX77lpHwkoKbf3qGahXBdqEdcvSDngaN8eaagEbnWfRDKZ4q6elg4RkzAa4XiOSs5Xvrhp
20103 lBzCYOTPoWZdPgAYNIcOFqcruS6sAEAOWXhHR5XyAOecdj
7X7guYBUbPXGVLhO38MIPYqrH9RS -23495
w50c4lGMdOQ1C7Npm3Q6LjUHyLSVfUnfnugSdMXVAPzRkhSG7Zds5TZwbMQvL0Uz9qRUk0wBApm
-18571 s7MxYDlbcYRX0XrJFqhBKvxTQUrdADNQnyqbgmrU4ryzMNRC -10661
DiA9ZdzyHK8nmMnrCGoRiQIeOD0cUDR2lLggZEpguuRr8r9eUYDEZjHTWaXCqz75jIEXBTbIFvDSvLwTyfySrw1qrzrMaHZd0Xf
-145 [...]
+2022-02-10T14:03:53 rvL7Zg9JftjaM5NakgB7KIw1B82AYJlg 26871
5jjFV80eGhUbg7g -9715
NHjUWk9RLlAkUEGaH3JQvUyPRMd2iJ98mJFxkVn6qCEyCj35eqt9Kqs7Z8XXJFS3Ki8TCkiTbP
8qB1wW7iPQLOFVPKGpVVtkbUBXWURIsZK6 -17933 y4k 8452
rl7Ax2DmnHGOyPxX8xOJLizIBCmORJw72X8YcqjUKENElILguJBRCu6f3YwVh7TAhfc8fGm4mlNHtueBlZbYWgherZymRMSFL5s2jyeCb2xqMk4OUIps
27190 3Y91Zbo1G7 3375
mkq24bqc0VvE8BEk9UOk5TtFx9CUfJRJw7TT6eI6Zs5v6kXSRK -32106
fBWGeDqcD0avSdXSh78fyhYSv5cZlz10xlH9nnevW4fGavnV4vHIL9h -10783
AKUTusNSUZEjjDfGNKpCL3pGG [...]
+2022-02-16T16:35:35 1iVy9w -4544
t0HKIzCVHjSKSbyiiFlaoD52unOsocl2Um2MBoGXtqcKJN52Gj4KiBwjiZAGp8fH 6598
vxsqcsJ9O25332cofUEMXb7cDEY1HY8iQARvDEH7msiS1d3vGsCjR8Ada3YU60XCrSqtumYu3X3rJiqGaXgnQmo9VfUNODrTQZgv9tFjqtk
-26967 sdMhopYdmGbDPcexw86qIn 3240
iGskfwhJQqYTWnHkWE4F1402ACjsjiCirf8T2VaKA533qGPALgD22NnmPGJDSjTXWKNOMOjppd4ylkeLKtCSKqbERHjMm8OgGTfdlfwpl4pSzMIl8UyAuXyQKR
-28261
bbCYlh2qGUsSLbuiCw6p8uqX5JV7Y6QAlHEVBYoeZ3cNx14IfKOsLwjkdXrGOINULwhbjfact2yzHwoDMzZXsZrd1OnI0
-19933 sD09q1RG59iIFk [...]
+2022-02-17T05:18:26 OPSr0YWUEbhV7dPc7xTv4SEnLOnbZrGzcIj5kF0pLO8RLcqoex
-10303
XM38XlKKZtoWbregv5Sq6xLLUs7C5OopdWWzhwd8Wz6hvNMMBMslqlmOuD88PrefpL4tC5l3l6VWeCyckQR5lKBWVtQws9J
-16432 BExGrOYpHzFOfr8W4O0bw5dDPaH2OAenIIzPO2bB56QzQoF8SgpXn4igDg1hUEjej5K6q
KKeFLOFDQgY47OZGmqQAPoLFNeuTp4rZmALi8cQGccU9FSS4ejVsmYW2oBm0vLckqL1RyQ8ycr5
-6927
p8IfHDXYwpiLxr8eFqolvv8nzmz6BmIhily5WujlPuDHKzsmLmkgzUjHvQMhbK56Wft1vEvkqd0iwgQIykj3l8EZ8UxzO5lkFZLhOBt
-32253 S7ObgL1AnrLyFxPUUco1v5DIslrCkOREYLQdnMbpoGn5xNwy [...]
+2022-02-18T15:15:47 flJkvKzKz6l1ehsYX3hO2fdHAEz1JD 14080
SWtanMszYUZa94EWn84EqnFq8fsE 8860
c327E30kekAEHuXhBPquwXDFAN4K4HKzhsGuHdtGeXAV7XAg5ANhxegIpGb6ijB8a0r3VypnbY7Llxfe1UEAezLw5PPhbXLjhjN3nVD2YoBboiq32Y8LCc7IdmUW3KN
MXIZx5uJeMBuyIXk6FrUFEpBVBWHu4MGFg63CZ7HDMF7XhTUhAOz -854
yQMj5RwE42dk7kdEHuzWjHmC4MDgWdPCfm2ppwXlGjFj6AElrdvbRZ9sHcg0LpXZxDD4PN2bGyFSb19MMwnMsQZiGteQpr5f5MkNhFa5V8PIukJP6
-29743 gbAGm9rVna2BNlGNmO8OFtfTxiwgxAQxa3gK -10674
z6CDk08KIZTiKPf96R5H97mU0eUbdAJHxZBbh4OrdvXoP8IsFc [...]
+2022-02-19T04:44:27 ZKSgcE5h3pvCwd3bpY8dn2xZS 31985 5m1UWoRc50Rac
-1689 lharCKaE3nHC0sMU0PW2C5DOgQaH
vFFSamizqCkT3GDwKO9d2mCIfr75eOWIEpfAPY9hVZ1nyyoa8I5Amzo 9198
N4VHAdmZgncGOOpUDUH39zsFL1Go6RmZYt6W83uQC1Ygu8bT2vzupUbFB0Ang6ICgX 25463
qg9BAMB0OPKG6K 877
o87nToiCRfkpl5kIoxaCZPUuI9WWK8ZO7k2Wl2YayIy6OOpEgOOOYTrVDqOUobkKJWyZLMA8YhWRvnuE1FHKBrzHuPV9XmzJ
-13451
2sce6fIDcD42PRjOV0Z8e6WUxRcyfWlovggK00JSmZAoliOshbHkVb6jL01pL1D47Irwe9Ub6CtRgzPohndyPxopRkdAIyTkrNq0MAoWGll3kMxWlKUAy6Qfln
-2012 XLruu [...]
+2022-02-19T16:27:30 LAoaiWil7DeLk02vK46 -19326
abj0fxFh3awv7boXDD77jSZAjl9EhvlmMngyZ0REuvWDtI2rikNmO -31278
RMMIyJvlyT1oXjtL4RtfOG5B1MnUKVT3GIvVnfHl2swyauMZ1tBIs9olL93jZ8NQF
9NUuKCJ5CDmeYAChyUANrfGptLoQ53YzeFthrNOikWprnU5WXDXTYliMKXGWtWArD6Kzvr75eLcBphfhN7SAKkUCAhBDcaVC0ofEZTNhsttoV7uvj
2958 W3PJPqIWhTO2lhjTdSaqz6xyietlgg 14578
i9RwgxxPg7nGkQx6Muk3eyFjXqyfn67yMME00TgictLQwcJnDICH6T8sHnQyIEC 2257
KWVmjZwIgi6789nMy4M 29259
zeesGbN151m0DUSt0whffl1ZDVJOR0Hw3KMQJBVaizQAF7Scpi75Z42MlvW5YYmBEGD [...]
+2022-02-20T18:52:34 0e1QyAufsbtQv2fnJkwFmIXtthqHvOxkb7s7KRIJ 21932
rIbKb96NijqGztFjEyWdJkIVTxc2qgtKpyabOo3ueRtXxwwcRf 9504
E4dgzlpJ88SsAjOVY0bIPn8kpRZOhfSW3IisrqLS5ihkIcU8lEuU3r YItDKmW2xU7 17178
97b -3644
uxY2WNxKgS2zZkzeDbwlCCyVJMXUjR88WCPvdo2G5LpTkqzOCM23RtjzhW9GprsUXsuvFzfAf3qi2PDsCzhiVajVvbMAy8XW
29423
E2BOWA8N4DbMFvUmP72dPtDNNGriJUmhze6pqEXISCM8pUJuGHeRY7mIaYdgPu5Aa2Q6FDI71z8LAs8NDKx2ba
17556
gPC2WvASUaevq82hc65dM9WgcttpPkayNqN7K9FUPdNdFxbXCIMZoAoINM3TALiHnxiwqQrwDLA2fVHLyPnGqp8P4m
[...]
+2022-02-23T06:31:05 NQg0GbBMUzkMBeY3Ha2xWC2Ib5c4CCmiFIk6HKgpDcL -3515
CtmvDZLFMdSMyJBdrwNLAWZWXd9nS0OAFjb69aMsww7rDhLOZZXvpErGgttG1jWuIbeVSxSVPu1RfFvypG5nHBsY20hOMZKLEuRctiSyXJ
-16422
uP7a3d8PkKD6bcPRNGavu51QFEbwUfJruzmkI3fMX9KJGUN7qk5GyxcFLvXV9TrXIyYp01WOIoW8w0oVTpcOQS4pOt8r
Uj77Zyu5nWh1shCdHCBRS4IAFNi0o16HS1Jqcv4oUDAbbcwD5LjHJZG0NRps3mzUIkil9buDKqvLPskLmcyOnSsnJQwJRNbxHK
28015 JnzSSKPZPN6NInqXLdEheKALk5DUU1rpVRiIOieeBUkswNWlyztcqei1U2T7V
-11805 JCQn74 -23344 4bYGQB -18620 gnde3EMpRz65n [...]
+2022-02-24T03:34:26 GButlHNr0r9mhYzQREk4rDKZTX0YVH74HS85x3EaCKAMMG5qHX
-5309
11qt2W5cPomNDRioHweYPS8OG2p001c5mwlXL1MWods3pNVsblcaNRDH7H3J8eXvmMGgsKMoKMrtuPZlfm316y4f2crNqLPd3Slln7HvReaR9MrfdD7z4o
4365 UBDwiDofMoN9ygIzdN
qakGtcMOhRJcBHrM0g4rZJJUm9pgmLtBuR8354gzpn2DLfE93RtEP6djR0Y 19442
JHmze3T6ROxz07T7yve7fPUJQSv3UuKj33Yhzr3kbfIW03kPTlH5QWcd4OfOWMmR72s00du7RTaGvtHcAF3qmt6n24jhnpbabBpHpWqC0Cfu5OP4F9tWdrQZGy61DVI
21408 3i9 14229 22xL5SXelx0MtTvq3JNWYmRbKi4G -524
eidz7Fm3AjMGVyucgoGWBpuL1PfK [...]
+2022-02-26T06:37:13 3i3QKro00ZmhsuxjHIV5uDh 30682
X8wlccu5z3R2wZd0onEmiOGyN2QAJSZ0hgBf8lqfbaS6S6O33W5wCNCKws8ZLlQKA8CYFLXMsILGaw4DmGui06
-31251 L75DxUU yQZ0aRD1xLDsTQrTH7h2DmVdC6RzIfVherfxjuo6BntCHJ9a9e0goB5jsL5
3588 zL1FJ1QJnJlfngiSuTZbT4CZcY4g5U1 -7040 A27 -30988
4DtRoMYWTaaZLjQINejDJn05xGaps6PEW2lSoIIGd3lw2DOkLPkS6zHwX60BBVUud2x0KBNDKV6NSJV0tUHaSI2taFRocOghNIog1MeqTrWfNEzEzgpCekOCdpQhr5T
-12515 LIpw4vJWyCrwFTw1WwLUbDp7mmKaGDidT3RvnRURcHqeaFeqHjHsdYqVFvF2rvuC5
-32550 zF0aI87MlPiOo3ENhT [...]
+2022-02-28T22:16:30 WLdnrSPBBs9j5YLi4Yugp5vCbSpaULwhu -29868
mwIXkBcIBXatKR07Q5xTJM2WIHhD5tFaQ1bOOEFUMdWXillAdji5Xkp0OL4K35uM5iNMiZuF1RFzpUMD3Oc5JtIRtEYmQvBNdTV5A
4953 qdqYH9mZNAVbv1Ns6OJBNoXle3ahAqiOjAEm82tvr2pbFvpZV8cVGpkZj5tQriuCrc
Io576EZvk6VrrbH3OJKW4J32W7FC0EEu9qsQni6tuya9ENQlFkYR0ml2xwGYSrVhmhEl6Daw6M3h8TfQ6kW
17868 vM1BmmHQQuEHHsDGINRq7Lza4MBKQJZfRvsbzxd74LEPKj6DSfbdtj32VU5
19608 uOTs3xUMaluo0NzHlUNcVJfRPtya40Gms717KhifXqs8JMNhdzxEgcTCZ -11125
S6KOMROXHFQzsrkEKJI4L 236 bocXqaY8jv [...]
+2022-03-03T03:17:07 9V0K5IBZwUgX6cFApEiP3M9pekb9RBiDohFGPoUHzApxDSTWaR
-12275
J0prciMHxOmCioqvNNDbgmvF1PQDZImx6bC8kY54PECTsMbgvovKFFwDzrOPmbLK6vddrOIpv6jIGBCqynzkmkZzSlVQXAxWIirxN
24154
CB1auqb5soNB4v59ReIVTFSotqCIhskf2vpJEUQg8YXW0gDmGAJBTeUmWUj98kXRJVP0PD6VBQCkTs
XEf4kN0pBP7biWtFQx7nK54R0hGRG1aVjEXQcQGkxQEO18nXTZ3F1WPAA5EXjaX2rZmDuKflT
-19602 Y5rhdcoonLSPVmF3qpPlttuMa66NTLr0v6j7g45nxjbxKe -11611
S0sOKTYXH9s6Kg1HxJqnV3o1IRdL6qsG7nwTiKtjd3evcN5OR30xXCG -27529
PMeSSZfKfiTnY3ax 18996 Bp3dtn [...]
+2022-03-06T06:50:28 c4auNOKcPrDQxytRm6Tiz9q74tWFOa 10778
NXJm3AC5j2yGq40Ib6pZLXx7CMKwyDHfJBWgt36d8E0DahApZu8nBMy0LWRv4WF647dwBL5frLcieIskAntVpkYs
-2422 7bThAYBXG1VfYoSbZoNI93X0YKuC04Vbr
N5icDPMXbgJucTtlRmSHS02l45Sj1sy7BNB9yTKVhCBMS5TWXiyBjokGlIYwUxKWNkAQlBhAWOpzZqGy8VMXuKZMd4hkD34v2
-6161
rDKcumpcn9sFlvO3S5fYzyDQavfyG71s3iLExlMnzJbqHPmV7OLznSEBWE0CKMgRnssbsxTUvAtx6i
15756
SKzE8jgrbvu3BwRlhgooVsEzMRM5tQuuP31pRwmTVK60XbXvdMbSQ70JRKPxRXp2cuACs79eIRILXhp8UByCOveMzvREeXveXIyCghwR4qsVL3LaYUizk
[...]
+2022-03-19T11:13:56 j -15209
Lu27Rx3347VajQBgx1Xkrkou7fAh7SvPrLU0DIOAPuvMRHH8OFBOTUCEiaPoUv68hYWipmL3qoOsLOvxLEWIZuVzqqtn5KFH5QULtCU4BKp1
27148
9XQGjczuNezYstHZiSWMNvHoTAcsqnXSGJ8rdlh1BSiPSU5yT807xkk3CM2kJvU8dmPfDGpG0NYWBy6Si3F4gFdSq8b5WKomTw43000A1u9N
zQgKNLiwYwkxg11zzbzO9QyxrK8QhfLVDgGT5I2nNtd73SB7DPjM5VqQJWX6b6gDz9runCaP1tOm0pVck85o
31222
WrcbuZAh6mldLuucsfuBa45AJMseuIpMhmcjwx5aYaM53WT9tkfoHdhGVn2ycRGsNKcNSDa6jlM3l6XcrZ7eOYdCc4bUEDlF75Oe
-20197 GgQmEmx7SUlxz -14560 iN1JInrYXn4AdHVsqSn [...]
+2022-03-20T02:41:39 GjdZr2U1WMmc8 -14936
WuKIJmKIOe0mrY3YAGvMNW2ZXVsirtqkaorjFetb4ka1SXTQkNafhJGz3dxRQa6zJSFB43XqelgWxyxLuyVo9ZXM5vHuCU
-3352
0McctsVY0bX9S92dYIUNKlAbnRmi3lqz6T15DtaI9AVIoQ3fR76GkNcBHXeX3B54anh34FAeuRnpkC7uitIcQWFGuJHJE1txnGrTMdutJaq4GP2XhGEdIEny8A
2WFHbnLaQvD8mCn0jjHnnPD70AZ1Biq6K0rD5QBs4X2EKUSl39uw2pTIssn3lsB08lBDCi4g7
32639 gWzBqksyAQacJWKBtnuLVl8Ilqza37o 32458
8YytB0UQXSstPL1JahcKmo0yJdZC1yZBNxF3waw3W1MJYf76zrzudObzEnLxlImOAl7J57bjexMnWTRso5JfhkH8iLDcAGXxx1tMZY
21630 [...]
+2022-03-20T10:11:26 SVWmibMkTLkO 10574
dmpTrPR9hbZDxBi0MceIoJKm21pysDTQxSYDLj2AUfpnLQ08WVFUrgh5SEijsCJcgukMPrtGLZB
27591 cemwlpJZButfHoG9HoxlboCXZdh4ICuG npkVVUjbshvpOP -22758
RCgmQYxN1vVfH7kYnQ3mUezd9qESg8hF21WD2n08IFA2ToV4lmBPDziOfPYZiCFNid1HqRmItpNRJSLFXZ
12758
koQNia7v2HBWsdXVwkzKFnz6J9PZKkAZqtIyJyzcl2BHAEp41TOE5dQu276kKz5BMwKJl218bNXRGkzCBGqIFyQsVBsBy4BBNRzu4B8MHOzQCfyTp7yDFIAwqLlkQXK
6075
toN32Qg5fb8dFvcFcu06Hr59cOyYf2bDtdQ4evPDqEOFNu1vGhzKT5xr0AjRcTf5QyElV6Ont4rtdsGb4RdKvLuRouI0fl
[...]
+2022-03-22T17:14:36 wqYAnAlO5TpVsjWpr7TA9SGz61vtiUbN3VOvR8kW6e -10136
QsCFt7CFObe13JLo2L0 27697 pvn2DedNPSgHDvcLMeYt2yZvleT9EjuXdxyKqF4N
Cx1EUuI0qg4zINpUZQPd5CXlP9COgr9Ba3OAm2zQY15Uond7SEpqLGdeSk0lNtbqQ4qOyaJCwkwJNbNwVdKatThkppgzg8WkAohEW3J7sStyX14UW
17393 rSU2M0fFl5ke9RlplgQ5tIWirzPmzMeZQ3hzVFshinKJmWXf -27376
VvVQWQceXI7mPgMEF7ugPhWNOUdYO7i8yUzmWFgTMt8hPuvHniRbEmSq -32339
goSmVp5gUim2WgFNhjRtqh6b9EEGPWDwZmT 25569 ttIPvH7JI1rINdlHjO9BIVCQmVW
2129 OcGRvNMcCRRcKujqtv3mo5Wk9WwQZdCirXUspP - [...]
+2022-04-01T00:14:17 CkAZJbm2R6sHVEY1c1jKqDrrP8iO -26628
EzkvT0iqCUrCuMeUbsvh45SlWo1HuX -12702
NLkHYcwuzVoU518CjguqNRR0gTZnUepFRNZFVMDlGdPm5JA2OFlh
Y5MA6cR604kSsazrEoq8VWKKqBPOnNhT5aJfXHfhQIhTEx9vngh9OeX0CgNaqaeAEZM7YJUWXb5MrRzCyo
23281 hPlZAZ3qdxu6PSxc0aZaUXIUSkfJNhPV -9319
7HkAcBOUjYsOHuhs7v2G78clK4Lt6scA62NuBIpSwfbCpxCmy7WrScrRARfc 28228 x
-27162 vCksCokx2ij5X2r5J 16879
oZitvvFsVOpy2WWWUaYKJgVTmAtY8nOroyt13NUKlXFxW8M031ZRLFKIGrBGLgAlWMMVj5VtedVk
27312 AZa1NFDFzBSNgp0DZq8XPGqX U95LdXcuR [...]
+2022-04-03T21:28:31 dsskLMddafceRzsxxqialnmGhQuR 28279
ajvmOm4WT07enbdi 379
g8Wibz6fPg6J71rwJZdpqQtexPxnqjZmbBBKAOYtvvUHObtR7EhwyRoSeMrQ2GgAPlIEcgTwFBneGRHJmXir2KZDwn6W3MWsypSNnv35OKrczGY6jHhZkR9HG7
8 29895 xeax -7782
agXTJVUA6zZZIZQZQEv4sfO7u1dzlHJrWy8a0BEVVoFJw4BAoxYNJZn8mkDv8uGKlmWKET2oMXDHD70moGGtvBAY1rIIg
-9534 UWQvFy7B 30171
et0JPEoJEzjloqirXiHUX7PMsvgZ5udBbJcezkX1W8PVsGcImb8lCawiQhgYFR2hmt6FK9JY4F1tYbopzv2pG8jQfrjqFpq0IjqEQoF26mO5H2SdrsJUhZk566Hmz
-30870 DneTQyurZtIY58D0xFCSIxMIfa [...]
+2022-04-13T01:42:40 vTxIUT8KbGB99x -12305 NQjNAC4uop7ti3xNdr3zZ -3683
ujOOclmMps9Xe9JIhcw9Cgp44Zw
1zk4lvOS9p27hUn21DajGFO182PfTnwxaNa1cXvIWHEKhIYsA44NF1DQpV0kxLSAurdWY3NCgEw7U6MIMz592hp4D9to8ZeQPpEayTfBCLOC5MuDHIiOOXU
22097
ugB8mdwgf1UZgBw2J1PAC6QlPEKF8k6zeJtrMJWa2dIIFF5cEF9jcEBXNLbzrxgR55Fz1issvn9haag85esocMVPbOMwr0QoM5HZ0bEgzMXNBYFRgV1
-25925 sTGxwf7zdjAgvWXPzcD51WUzHEqMtE2oIFQcU -9887
I27ckeYniCmE4HnHV3GWxZuLORzk9LOHq9vxwUd2aQkO1YYQTFpy13QznvRVH07t4wtBDM3cV5JeHdIG12wCZcchMv
30326 lWze [...]
+2022-04-15T00:32:04 sMjs7lckCEXfF2pia 24686
5vbpZGmydg1Z4DzmOYC5LYcdkeMuJ91Z6l8fYHnPHSwFI9NfXyelYa7imqrow0722k21QvqEWVdccLdouGpCHkGYSIn31R7qw52A0phLPu2OUw6A
-8054 pu
sc0NkUBpMtaU6qjZi4eo3e8pzFvsyCUZtMte0iEFxCbrrbHoEgQtKrUylb0rg64C -7766
exwEIKylGd2z8K5zhDWdvJzWyqxsMdPXov8ZLAs3JjXtm6aDilWwgVhe2KiOmpeprOUB3aeV4SE8cC3qe69KNu6G0Kcx
-32632
F6D5X4vKgoLZrmcarVV5hvu0MqpIrcVPITagikidEv8RWi3OlRVWQbUPCbNqQJHBbgdFKWWQm4EM4XZ2l6O
19963 rgqwLCLtcIIOzdHTT1SlFWulIl5Q0tF1dO47r7w1vpy1au857IkvXORQieCq46RJ9
[...]
+2022-04-16T18:22:34 VkJ8gCFxMTtyWfWtqPs9k12kAbH7btCzPt5zNuisFJw5bl -10124
K160mpZcsXdd3xHEqceaIF7OQQA8rcFq3RRmIruxfGxuKv54isIA9XN2MJYQTvlreZ65nPbLdkR05QqVOX
15191
Td88JsGQrfLJYoE0wZ5cUV1g8zi9yzIGw2N6GOhu8qtBRIWLVQyrCwjikZ6XNnSR6UnS6J9Hvoa4xExfkwz99LggZ35W3
8AuVCdIP98blLeN0B0Scsj 9991 -5759
qnCeP00avDVlgJdy6pFnQ9io6gnAvkScmZR9nPTULNVigRQrgFVn3J5hnFkGvWxWQFlX 2807
IrarTeEUGoR92KgS9X57eHURn84i51fOMimLE3OtTV9MIANiO8UJhVngLqAB3hmIp9x8ttEOU0KzrsgDPNSFqECD6PVmKP6fPD3TIohOVjQbYDOO0Fj935BE2nur04
[...]
+2022-04-20T17:45:23 Lg1pi -1766 I 1794 er83Dk55DvAzVsf27
BLtQPjniExb93Xn4ft0OdV2fw7ihgcg45uikZYLXJ37R44ZtyFoqIYKOotG69MnV7B9IgGVWqU
-17241 mGrHbxKsvFXX2boIh39GGxLTA42O 26432
JrNuVOpfJGkiK4LV1F5IxfWDaIEWGKFcaGKB5zEA47oO28OCKbmVyJRfUQRimIG1CZOdOKYVjI3Afq3Jp8O5eEPaHpZvLhjkICre4gIj
22454
KM1X3cFF7Y90IYKe4gQqTAncM86PY7sdBGGmx8JpTkdbEMU0wwRPi8uJIa5Hp1YKyDk9dskFd8nXvZ5gxkc
-10762 4z0u4emmgGcbQA1V3FcAj3gs5nBUVKrRxJGpmsvrwLzPa8duystCay -29234
YK01F 22062 xt8WMXul7V9APqhHSfbJR6YRHs4eqy6AiVHjsvYWYJ [...]
+2022-04-21T20:13:31 m5YSSIlzy9f7zOHPVLJYG 24525
vy2Pp4czoKwaaLnwPmLjNHDWz3uNGgnrKRptGZTvbHFhvWrmt2s62dcRTOLMBHd9jLyVRDn0B3ToW6xnuwNKUxcXmjfdgmr47PK10LBVOZWIGgSCQ5PR3BNtGGfpcUw
10345
UAAcheZOzcDXjgWH7h0a4fWJ16ORqGQ0n8ldKbc6d8p2qLTrYepFvluf2BX7v8pQLSjAl06zmAz6JToNwtwCrMB6Fu1pVU5HFApNb1yBwk4rZDke1VdwruTtN
kgpK7gI5BAowNff8xS6HC0Iha 10766 MG4yaWG8tx9Opth 32765
F4q7RWwcu0xsP4up1Tco2F90neUCQqZSnXnUO3bAE3AfymbR61IA1GkU -456 4KzY
24442 tncqguqSHvA8FwHJ0PM3rn8ipphtoeofatKla6RDi3lFX7 22685 wjyIsMG9 [...]
+2022-04-27T23:48:05 EQ8pn 21533
IyrQTPb7cxQT4gejyi0rB17HEXRPNynXxuEANsZcS0p3J90CmGR8Yp2mszATBDIgMkLLLaVXyWoZ2qS39ht
16977
cWoctHGc9TFTun1wzltLfyo8FzEnvIWbdpNhOPiZaMCCJ2Llz4VS3Ha2rReTkG0jddOflW6RXkEiHDj3EojzNbwFeOihBikbqBdiqfx
0uLzFaEemOYLBb3muI9xnBfdBXeTGqgG65KEhBwj3extmXqMNHIJhqNzIMAOzzIFoq9YKcX2YVPXmCFHV
-24782
TaHHDYajbRgnuBmbo2dRhKmCIc94Xlkt2FigVqTQ5qokV8fFa7B8Xh4jPouKZ0KNq41SCAHuXTDAIJW81EdFURVrjaRzO1mxW4vxfWxsOEPxU6xkMesMj3mV
19396 tdnldYNUd0Wa4fkZyRudhTD0Kz96fZxY7jVPPsK17ea 10398 [...]
+2022-05-02T04:35:50 gsmmDpUSUG8vjbNNcQrHlbOEP 9257
ScnsgOjdhi0BGTQnoeNNzMNGYq7d1bAUvdutvAKVbel4hm 8870
1Z1Dmzs75wGybdGaHmJmcekbLALng4uL23ykZlBzqSdqJK7632tkROPxh1wmLuKXnVJsJe
asKYsecx9gBP6hiOxuOaSfuCTBeriaddA0tYEC0oSo6pMkmh4gH8SCpObsfhECNd3eyBCxrzX
32569
cAHOTYVtjUOQ0OKwutqFWY8isGMheJlA9qg1Wk0mXGyAp6hFF54hNP8H8igLyzCv4ry09gb2NTg09L2pb0gC2CB7Zx50ASdcAUQ9mePpxwfUG
17503 54fvEo2vjLcuP6v1C3ilbjQcRKoR7VHnBcI8CxXdAu2Otyu8DHeW 12658
chKqv7mHxobUDlimuQhV2R59BflG7nO73zc6Pux8JmZ0Eab7ACvrOTICaF0Wlss [...]
+2022-05-09T22:37:09 LlX3DBSqp1uSemuLEVLdVMOdGOv6FrAA9W0 -17768
pqpPTJDJQVrWO1G0ESpYPJT8x5BL7Zk957O9D24wCEG 27655
uA0UjkL4ZpCU1TMZpwQkTcr3wn57R8so7ifYX1sAQdJBbFQgieF9K5Q0USAfZdkJX0w8ZEiqNNiAkQtXpXd2dLiifnXqmKCeOxUyYIqzrm
fDfB02HOjalpRKlzSDhSRYOMWPFie4o1E9IRMwXDsIonuChG56xCusqdHO83g3FuAkJN9eeiych730Xh12Jv6dy7lq2O8E1w8F3Dmc4CHfD9mB7uv45yoqE6Kkky
12299 uMESWUI -499
ijivNBFusFkYtNaiwmuKcFzgvyVOkmrfx7bbIANxzEWA4yj20bxZM0EQ4GjX3OjjFEMTgQZgYaY
16816 psalpALrPOuPoeAn5h6i6BJaLrqOetvmDaIo8GvIwX252G [...]
+2022-05-12T08:13:24 JLuWRRs1 28699
7rGMEXF0HigTLFRZcr2b7YSA5WB89wsi9Ijo1GmEkiCJSONDuGTAgbCnFXsLdJA0ZqAlxXJSEPWCMFPWBje5y
-7019 dyqILkQ9sjoIbTSVT6ErisLGJwVJYwI91I9gQ5QXvXOkDScdAqnoZoJym3g
ZwyeHqSFdpsyUimN7r0aay9rNNbfZEwYgMBuPdCyYSXF88zymdB5bo36L616MtLSff5ML1L1i5NZLRrvfybp7LB4r5fuRRY
-10981
1kFvfkY5DPS2vDDzDqxv8x7TYLPD3vQWbDR3JXnQDlRmS3rIanA7ori7dnMOEk9XKsOMjo83TR3PPalrUT0U
-5371
jCQSnPAQXkUfyYvMs4g25HBbuscaOZFCQgJkaBbwOOUMT528OgIrAQMM2zmZxpuZEVPzaR7nPqbOk8TKirdJAMFaSB3fV4LQzA0rGVBEfvIAKJC
[...]
+2022-05-16T17:56:52 g86MbVm9Z3oDAMVSLGT0tsHVlePKMbtVwhnox9 -8473
gZKmyomUS32a3o5E8UPwL2itXVTY3wPfLC5b6dVMuviMqx 2038
f8AumhzKwkz5msTU7YewqivGfwy3CN9zVwCPP5ZzZOll2UznAioSpLRAORLqjBBV9LYTE5QeCC8OrP8m3TFNrpdhvCzOKbE
ADstszZMbDcweFCBXGUAUJXrcjYNjifVB2lY1v6fIvGRucIdSxHMCodEvuuRs7vc3crO9c2PX4tHOCP
-13305
ztolKbWkpEumm6g0i5zWrsKOasunrV4x9k9NOCgWEFejXRql8XeGfbga7E4sGFk030YBNEyOak5ZfrveOrRfSMN9NZIOe5uTVd9jTu5J
5367
wiTEvF6mYfOEW14n477ffQAtRsXaRxBOY3KsllHl2xS5JOfNHIu9fIKN6yDtsA5RVTTdyMR8Atxv8FHDwp
[...]
+2022-05-27T04:03:32 qOMObhuYjJ 30974
fOv1i2UiKb3TDiNAffXEhY2aiX7GxRZ48p4dAGg6xJdeO 31448 TP35gY 16597
I01ybcqCWdfeTtCw31ocbWNaXK2lJdtOB743fpXNsTXjuRc7zRPDp3O620aRFEmvDvfsndONP7ob7Ty3nZysVWbEo38F0rbXk8Beg2nENzbSEAi
30688 bPQNcdIKHrO1ZsF1VEwr64WC9myc7mCV8jy7ddR 23927
ToKAQegQU6DZejmzSqAnpnCCGvSY0z5aQqeJv6c4GntYvUO2Rck58mtD13lSaBi8VmnedMbc37qer5eGYJ30Tn2NQ
-26888
HV4ZcQTEsqgzUThqfbpy7RTQIctQooCZMmenfdOw4BzuM3ApyUa4ui0A23KI6kuC8MYosMNh0rYJINf1afXJMDFFRMWMTaMjlo8DGHV
19430 gPtymc2HmgzokC929d [...]
+2022-05-28T09:32:30 720 GvoEOxpEJ -22273
EheavOTVgLxTnxZTzXmlgUsOO2uMWrfd3xyTbhhtf5J6vhGPnphiudiThBOIILhjq37X2q9yWzfhbQrjYs68xKRgfRajkXfqkk0Qy7USAeb
XtGY3dWBFrahsLmpQNbTDPokuiusL4ierHP8Cs8ZVCuc52AENQ8mtWMDhB3cdNXq2q5FzsIOkViJH6cLveFViGvQtQTZhOVVnkYaXePWh5
-27876 EcjCr6APf9Lara3W62THTsNgV6dHqzwIGKdjrJ6JWM -6183
HOwNBxfTfOeu21fZOm2q1cvHK2v3OfIjz1dnBNiEog 22585
WrUC1GYQmaiRIXD9l5rmux9vrBakRXYu1nenU3vq2ZrUnuoikhaN8IpYhnHr6KOUhEfJiZfoiJvB53QZTmQO5bnIj9UdzR
-29530 04gEn9H9jXDzzlsaLPuAwxN6B6DY [...]
+2022-05-31T08:00 siTOlpPxxBtK9ckDMB 25836
9iUXiT2nAlY93YtFyeIyPKHxrcqXFjMcKo3Um9Pk7GtfM1BeEPDtinR7COQ1o184z0OLcXyhywwyRvbZDnugCcV6FT8u65sEHf
21924
iBIHzGdLs9H8Jwp1Ensl424jPFygUBSII3HyFaPnMk90cQi8vqN4Jccc5rrVvZap9Y7ItgwGJtX3SyBQF9IV5JFMMJKpjo8GqNHthfQD3is808JM8lTj3mxPDX3ydC
OWVcSJemRKmhEJ88zEYY8DTnL6gkDp8MJo1lk 28065 M9Xwy6SEt07RGtohFAGqC
-15220
CpNnAzmPfGiKaEgx35SwDnuCptQ4StFLGdW8BOZaiztOYoNnGy2262Fsq4R6CwRbuO2966fy6mpax2xvAQhTg9ajO6qVnVz8VHbG0OJJf5Uw6WyTQhPS0M9XXX1R8Hs
29475 xmvancmUFdC [...]
+2022-06-01T22:23:35 Xf529kULRSE9vIl4bMgwaItKNfcJl00SCNkQzfy0Oa9Vi5F 2249
DBJblNSLv7tY6Ojbd84eYaRPUsetzJ -7180 1mUEf1UUIzUOZ4CXrJncZvJyIN2blmyZ
t5vmtvHNl81GltFsp2ATPzJUn2Y0MYpadrmAsOObCMSDXMvp5eAbn8Fs2PmtvhJFtC5JR4CY9netVz7gfN4BcIY1JT7Bt
-5044
DtDFDEJdfbaxYWcDHzaEpL6ADOF6pTjEbfiZ99jJpGwryajpNYceHrkPL8rLfTLwo6rv5HCKa5wSe4H3hH1F9IAKS42eI
-8148 -17456
veKkzGeaAHAb2Lol7FZFTNfRtQCwnbW5rNkaOoHJpO02djsiLXkLELUr0iSLew2 -21329
rVZQ0x7ZzXLqE05W7IPgGIPnjoFiK2nlrxe 1122 OpXgKQiYwTZxDacQ7DOYBtykWhS1C
[...]
+2022-06-03T12:55:42 qR 28001
EX5U3XOdICtdh6xYGi3jWdjxZlmZnMbBSEi2EPD3uiYI9wevLW6AWMTK8 8347 a16
thNg6rvrgBFhe6F97xrEliQNpXbZ2UnDiD0irH 13034
q3LYKZhTEVIiSh6f7mEm0M9gI35hra7TNxBJbABK6yq1qvcBcbwlIpCYuE16emcaBFhvjGBSmJcJTS1liyRxclBOjVo
-18492
ZHGuXi8rPqDzekIPBjKB4gE1SSaRe9T0OnGFlfkvJedB1RhJr3wxfzxzJ8D3jbvAEuyrXIkA4Bmmvkf
7449
YUQWK2b2rGLzbj4ufZhcfysFIt37yosK35i3k2K33tnEE7moDkfveBX1cdPffvQLWDblkPTwsRoLgDVpF7ENpo
27289
h5BXq3T1EXnU1EpqvcPuiaW2MFO7IJzkDCMvp35fLOKpNhIpPGjKVUQdqBLcE2O9nawOBSRdAr [...]
+2022-06-06T09:46:30 yGZ630jHLUBvh25KtUFVj6nNgkYTb7NhqwDyzrul8lWOESr7
-6294
zZoyWchwZI1hFxxFNBtQqL0xbnRILiKIWUIefh894eurBGd1htUFIhQtnX4I0mPnQ2HEm3Akl0LhTojsogALg7kxfhipaWaR6XA
-8165 OjRCok4g8xHHiRJSms6HPwvzdt8
e4XyC3Rwwmni8GNykQMdfXa3MoGb6Kb3dhLNfc -9977
7ygpKwA4a2iPmf4l6w2PLgIR5Al17y7EdjATTiJzMJQbOJOHZL2NCrmJtQ6TWbmasSUfGSygaSoL3savOkyw5bCsCWwwTpzGz8SXKTaxivLQSbwXYX9aIR
-10879
9GtkiAn9PKRCVTFh1EHarJHNASgDVsUqYyKEXYH7hB8Y4nVcpR2ZS2hJK99B2WBt7HaqY66cKj7afcAkj72PxH65BDdZU6REKf2tRXuZ5ZqE06m5
[...]
+2022-06-08T07:42:12 RamFHwo9IBspX6awmH35xGt8xMkBNWznkJwaErlXawZqEevK3
-21542
2C8s6KOkZpsiw8iMiAX2JnSNdrtCL8ViFiHNXFgl4LyLHc6zAdgyk8asskhFtugSmEZMF2w0x7A4RM2sVUCc4GLf1Rj9RLFdZ
-7362
1pj8wJRhS9UboHzwMz1PECX06XiCZN6zEjH32NJak3GQxNWtIgb6Tbw4LhnCecujrIKrgVphVJGLLjN1sE4Zf9sds7WmjxMe29D90p6XtIIX9cpuxyvuYpHqO2ThaF
JlgS2BRmTC82YM9sBSG9DFtGKVExDXCSdbBMTDywlh3HqDK5BktwIfOG1rBnx8fmLOZrENecyUzggWQkSXkCBXHiNzTN87AX3z52nfh1Ecx
11873
jsHcg1AeMTMFYR5nw3fQaeL4rBHDP7BGjOHl84BjCJuE2vOUnFoLQEmwDjNCOP3FvlyDJ6 [...]
+2022-06-08T17:30:40 4VVVvJVhHXgAT 20893
W0o6buNwoKsAJe91nZEu9GKfQnPgVfh38wG1Od7yiN9ptFOlowCfxuT9vzEGtcIbS3nfeMSFsfXkyqNXGpanqpH3AzsRRkE5REvnN6qVItOSHMGxbE
7370 jA2Q
YmaEp9heXS2MRtEU19MX2LSYfONilo0lUarpKvGdKEQ7b5RVczAAVDXrCbuzDuevUSttBkVngz8PwPbiFhVajxvr
-24943
SGR8AVgnRcXlH0RDjtuzRYKyRI9AHcYDBmY0W1IHzdlGr7axFCIEhHQxpvZPVgnwF9cmOKd17Kb7l9a22
-5410 d 15657
YheOqLKgjib1eInGQM2hZ54jZm2O6z5zTOODbx7ZzOn9kXOVUgreXg2Qy1NLvGB7jBNbehX219AQBBBrbmkbIx4cy5IJ7Y35zKRoV4WvpH61NHcUG
-21254 KSpXa 13959 VC [...]
+2022-06-21T08:59:13 b0doEtlk4sZgOkWiLnf1QH8GR7comPevLVu -6416
XrTzLOoVKeWchibg4mTUs53rXgRH9HkzmgrjDR0VQxWHrDd5rxB9P7XdgalJ4lyuZeXEQgfvR9CFvxFrEs0ELoBk09vgrd0GRKdMslYqZai
30448
paia3Wiot2MM7oceXn4PdsQYvWi2jc899PzjXuzIYX3RFxz9e8Vksk0I1fE6t0NmiQrRfvN89JA3i
YE3IlSFmWOzK9jCIEcCa3Dvg0eDSY4ZBqpMjsILxIa210rzQos8BJ8haOsMbfyIYykjcCC7F0Y6ZsSEfkrgE8ANycx12wmHWw6Y1p2KlnjoKVxW
19995 wwmASXBYskywuVHIoCr91mp2g1TGruRk5WWAIQ -9741
a8BGXBBYjR12qXOotnEChFBjcpzxlNWdyPcdRrzEtHqcoGW5VMKkWYqnFQlIANw8X9YYzxwB3AZ
[...]
+2022-06-24T10:45:20 ZnFutgOM -25447
Q8fjL0t6YeigufzAtXROUaE94kwcRv0HrN1qk5xl91QtSEq -2160
xCIwP2FVbzTThdF8Hzmw0oil2Db9N1Sn5MST4zDRglAV4w7t0VRCFFwdbXUPml8QHKRi1nYehyTUhhlLFDL9V
eGyvSEWAYGLcI5iNNPMjYjTUsLBiCrObEUaLJSq3lzi3uZA6nuu19Sgb4l4WA9YZQBkzlHfUBIFg6qyO0wFTw3ad6vh7XLwd7Tfl3V3GuShkI7GS2w1kw5
27344 sIitPm6MMg4T1moJcItOmLii69DDqqukGVzsuPT -3012 01kkDVe7RP2adTE
-24888
PVwe9JMCzfcstuBnlPYipGE41AC8rBZZCI59D7pHvpq1AaYui2wvOyZQFCbhFPxVfAHwdBiraXKVwl6MyxKa4P9uJe2A
-29187 NF1zeypwDMG2f06bS4Kjv5 [...]
+2022-07-03T04:56:17 H8LdLwzbCzwzqR6UMiX5d7Eb86cbVUjxUpP 10710
bqjzZhcwy5tqKpA6ygnnqPxKJzXN0buY1NkZEAH7 -27878
2jhtz0NjGIyetIGF2L0sZAjzJpKFaIl03mLXq3A1sCJ5ZcXVABH8UZK4OUh0kluSt2R8HEuoLZIQQ916CdfxFBc
4ClP7cr8g7u619F3YP8ZZUqRQ -32704 roH8fDuBWg0Bx7SQSckMHpde6x 30440
ma3pQRFXKIDPKkEKoYTK -5888 L1t2at8JqzLuLAaU 193
e40z4ZMKxLqCLLPw 17340 5k1ZYWY1cFnLoyUAw9UHpsXotdPM8X8 19380
8Z3bklpzi06fQUaXdBt2aC99NOAG6dAUmoNt4BKzArZsj0OPlAdzT2
t05XKFiq8wsolQJzafmSHrLch5TAxeJ1QkBWXxu1zj02zaLRgoXu9DUU5peCIjAm [...]
+2022-07-03T10:09:48 bA 2336
ei4Fk72XudI7o4ACNLjUQcg0GT47nFO2ldWPD8sBqfz8lDBczbTrkE6L7cazCrtUGUr3rnlBfG36SSvehI2qsWU8BnEAuPzcTuUYd7ezoKLCkaeadGYq03hdcQjpg
-26848 sVUe41JjKXRa
F1S7f2hmGeBYqD3rspmhxW80b1sYSxRkZQLdQIZa87CjTynolOwIUcTus2XfysBQzigSMpccuzqnmeGImAxo1cSUMyltb
-24361 DqWhnt4u1Wv1KMYRwDF5kl2fe8dcblULXcohlThYQ4OQHGvlSAc3xHWh4p
-2116 w0YsISJO4WiywaQQAZ2ALTKYx8WE3rQ4Dnv5edE -25103
mbI32Y3LdXLsnYKc9tvNxOd98tZojsbbAd0uf7AxME6rimBkOwRbIa74nqkhlO9VcqTA4PR1y19cUvrxuQXT7UwaK78QjNWMfJVOjb17u
[...]
+2022-07-06T12:21:09 pRjhMXWOwmpXepDrRhFr 4973
hEt4jtClpsdPXTvfrOmlMCrd6H4AJewxlpeblPHdngRWidDkuqa0CwqCm9Ld5tvF2RSyGIiX8f6ZAXsxmgNEg7rvidVTHlICb1v5Dqwq399QGsbK28UTDfTXcGFa
-19563 iZA07AcMuJOl9ordxMbdhuea6qjbgSBXbHJPvYhVZhvaCossVMc0IIJL
XZvVhtecBc6HCWX0ojaHL2mDw1VQFc40KNPgyDHGJqo7cd8pJ2EHThYgF5BSpQo4qwz1CigbReRB5deMpYrnrZzksjJlrbOzQ7kV9asfs262EoiRGiZxKOkVKdo
-22252
6rgR1ld5ObhuvdpNyYuGRZmXVrRUj9momCFf6Zs7m6A3icNHZ2xGC2QkfJvt3s1mdwEGTFCzEXb9H7btpQ0NQz3Mx8NpS5UYjnMt
-3703 A01lVMs88C9MILlf6Zo [...]
+2022-07-08T13:02:16 xrh65t1BjdlqF4BAW7P3ZVLWs7UcR6cVnbC74gC6fse2IKtPo
23553
1maWJFJUEcf3LxRGeq0DCWt7Wt99wpnpt4pSgkPRnNnIb1fzg8ABO323BzaekY35pXSSpzhMXQ9I0EmmJ7B2
31319
eOIMNBACGpIp8DJkoh4tnCvdsVwLoBJ125gIHUx0q5FYyQG4XFGYbysoxG1sz6x7krfv1D72MAglTOUWdaYIcelf9Xlww6HKHplZ51
a0RkaEfFAD2b7xlte -15326
XBdvwKTNhC3flN5ENZpiWx4pwIn8R7kcrIuIwVTGhScuJ5lVZDsvZl0GR89Vg8tQDsJtXzTw6t
-22719 SydeoSqqumOl3AvM3pK6lUsgEljqGjSByyckGMRrfEfHHIoJ -17914
hAfwqsMYtGPhcQ8UC9MsNvifHWXf65B5skJJ9cPSEEg6KcpnC0GVxDWylT6 [...]
+2022-07-09T06:58:52 NOx20uJlZ2tKWwPUiOymVy1lcm9WclPFDE0xiVrmFLaETgqMx
647
5TdqRc9eN9VJ4x47oJhuibzovBhIOB29ZpH60ETOIik09DxqC491BivTyJiMjzC6vFFtDo2HmBFXXwTA656eQPIKjpJ6Z6qZNeOsML2SUOY703dnFpyrXgxx
-24992
04Gg5svmfsMuiKZqOyChQtkj2ORS8GRxVGyjHSthedKpO7XgopMLtDJG3ojRlSHCz9LkxgJJIGJCy9KPbMbs56ouFf0QF0nf59h8HFCOXuxpWZmd5jYD
rj1TspTr0B2ygN -31162
g1C5pd29R4J9svX3E6l9dhvQp8N4lAOUpUW9lJRf7L4QxCT89eeUUKX0jMCu -26160
AyhlMu2D3Pvf0CEK68wcJXB25sdSLbahznK9bg13BS8NMLq3YP8VoXvZykuYsGAjr3mmp08MhknD42939Cr
[...]
+2022-07-16T06:54:18 B8eR9Kldo8JetH9fhF7H -15678 gEUK8xx39HBD25v6Kuh9
-7318
4hh1syDPo6ohHTxaCetV6G2o8BipnCFLCh4EssGu3uJWpCjOQgDgTu9MF7lz2MGwXyX5YCmy8MbhBPWz0qpP244QmcBzZrEDkB4YOGo3SG
8lq7ok1KY3sDqc60Q37nQllQzsZgtbna1PZ4kffNoEikFCcnKFIs9nIPYbBA36ESEWiTXgrzGNguU7ckjeH34eeKUpAKbqu
-2788 mrUMRUAjqifo -12097
RCXQpHimeQhMbmdHeZXtuXuwKJC4RXtGWcTwedfnooYwJP0zoIAYN3d2FtvHxZAeekc3abPWyeU1NzcE0nGcQvAGNYJpO9R
-12619 c8KY8d13WWPrFYrytB80izK24pLbSg4PR5jkoDQxX -23197
T0epZXpx00Hr3cZ38V7U3lJUPKomxzWBC083 [...]
+2022-07-19T04:19:14 nTznC9MDq6kq65929Z53 28428
2lqQM8RBYNUCYHEqtu4oFQQfBPacij0T91X23gZyw3RNcJ9u6rGmHPLoUWFlQDpiH3qQSWwXRv7c4squkHHoRuN0Y3hGCh
-31274
U0R3dGT1s2kAG1gp44NJXxVA0A1d91ro1u9YGfBjfmKb49noLM2Xfl4G5bOsGJm57Cde8ZhnyTAPY5PtzAst0Z
ttYAgMa7U68HeONHnMYkH2UtfkRaELwmO40p58iRdMBfMxiILkBrtoyrtgCjmQsjMxCKvUCh6ENyCJBPBeqPtFy6PIeJUL4dHP6ueEWSzrrZ6vXaqgBjbY6ux0ZR
2269 xhPdG3eUrWJRhRSMVBxkO71rLnoZ5HStNAO5FbqgSArGXxl8E8XHe5pdd05A5rKqZ
-11493 idkotcfqhDxjfmeqhKaupCIbNU72CPDvwZqAWndHDl6Pt8C11S4YT [...]
+2022-07-22T13:34:05 -31186 Qcr3dCI0dLfiWrlvI 18270
NLtvhlN8odr4drl2sLPr7lCnOVjw3iwVI5euBvZcVPfZrCvC1KiH9rbv8mnb0NycFO49rDoL
pTC2TJiVps8vqyu0Gy6Rtrh82rfGFuccR3mynGK1OmrpWOK3tv6ipqSu2WdQQ7aso0ltcFWbARqVPDQtIk8f3ErLh2BgDv0UJSEVT7vj8Pr7z
-4507 c0vtgdwAZ 1317
wJiY1fs01cl4WhiDpRGrLpLLKytsr6bC2gABXAM2RkG6ClNsPPrU3tajaZrqVvar 7335
d4C4z21BkeAJfcf7p9cJwhTQDALwQX 1228 Sln6NkX 1095
EVfQC0Igq8zMQfMNSiS2nV84CiGVfMBvLeb4V7lzr1ogoC1MRjq3otlFmHBQ0dOQlSfioRnRIFaXkNUokFtvXYBF7ILWGavSkS5lQmk8TEcTh1FwoiwPO
[...]
+2022-07-24T18:02:56 4QtxF2i4hlyYgB 8896
mTr0BZt1oANJ5HVmJIUD705UhI6pYINbKAzijb4PjzjxNhqvxqeYzlqHwJ5Kqf5Wy8VwBqaNoqVrq5kEx9KVg3H6H4kIDBEQ74Z
-20761
cQwxoJ7RfuQZurXBaOAF3vPklhanqZyQiyEjsnOjyGAGhUKDg5ynDN3h6PLbsxSOSM7JpytdaWHm2pk8w
e6osY9R0G1wplmAfF0NQoE2YQTGiE6b6S1qqKpsXPRWMa9YRk9Ofcj7cvjFJf5Brz1
-12451 AIgz4Cx6BcYJcosgz8q50akvLZtPKk0BFqURzZNPLCFo0zQ0TAPGoQqkEPLesnjYV
-16022
e0nsMGziEok5gubj2bJDzOoNkGa2tGltZ8TGSg3VXjZaSeMzzJzAGuKxHUln5rkpmJZ76IwmakjtlYmq6cTP054yJY4iAR8ZQUMz9fX9M9tKb4rWul6D
[...]
+2022-07-27T21:21:47 aTJ08ItVheiQRq4JRH 1937 Y -7470
ECN2EwxAl4Ex0rktqnkTq3zEqNafJkjhTBt75nEG4fyxKJpwSsVWeX37ehX3LlyKMy2MziFurxUHMVfbn4OetLGvz0XFfj
Aj4CLo 28539 zXkuvu0mxAK4QWx 4091
PJrIpOLnxiyE8iN8rjxTYnVhUofdGGmD68AHuHMrji -21823
A63cFppt3AiiiLy4oIzEADva13QXDbZAxz6aJqPvbWRwOseiFkt50IQnzcnzqPRx527UnR -7096
uxk6odYvSuLFoWdV0o -5983
ZU8raqJdnlLVUu5iPxQpUU7bYVkp45zFv4eldzoaQP66GvPubeblEBSun3ZmYciN5gxgS4t6jT1zgcoT5hmeTjMsf49CEfeP4MIgNeWTW8gpVo0Ju3u
27219 FvSbY1QKvqYYW8brkWKcIiS8KChgM1oLAD4I8 [...]
+2022-07-29T16:46:12 gikbvED46Wxo1yyzTMssE0nHlaFiijFj 8684
UvGxx0ft6fAzsl4ZNqqA292lZtHCQrSzuxbmWPuFoNA1FN33DuHZ5F2oUgNKv7uS70gXcgeFSDv0Cr2174hgQkSfO968vKaP3pRpgzxJA8E3F
-28940
2SWtFJCrcYH9ImIPHUNVb0aCWHulFX9jFCNDhQhrBp89RdBj5qCwpdtDa4VxAle50j5wAkZKNjffPJ8
0snK9BlGCbnK24cRmljjKHgRC1vxVwEA1TymSYk1QXzSFvLOm5atoEPnbnQkeeGt62 16626
IXpq6o0nLUaAQB9O8qpoLEVJtSQmgwEzcWstARgP0y9yepCkSdwEC556lTyRTg8VNQTB0YkQGHA0ntWq2NVYb2Pj
-30544
wIk6C2eNCO1dtOKHhuwZzgUdl6m26YHUq8z1RONak0r8seNSoRv4TH6Ev4K4LCoNoHMy [...]
+2022-08-01T05:50:39 gA6643lBoT4MLdwrNR9RCmjtXznvQ0F -29986
o6lFgXWrdnJ5fhLgNa 21946 PtBZCaOwRhiosRcm2DQUBeKwZbDFCK
fYejW5qgJLkTFokeSIeibo8sE -16950
mcMOz7QfBei6NYOD2gXg2p0aWGEG3YtZoeQygJmQ5fZhkbWY8vwC5UQDF1ImuVjvmxN4MSgI8pmCBzDFd9y5eNHL6mfk9Yuc1n8dl5m6Mgj1eX5
8646 PqrTyZy40iS3rnuHLrnxFpVgaaBzWPizR6RnON2Hpbs9czMlhL3agrGB31A9ZGR4QFGN
12312
tDmxLyL9AHAB2UTE5bkmHh7xZL0igOi2jnJ8rd6Rt3oTDsEw5k7YNxSuTUnvoN7Ue8e95rdWOdh
-4402 mju0Kh80PpGfb4IbA34pL7h6nE3pZZvyCrRTzkY5dgJdJdC69JMsqXhJ2RaY1v1urwvmgW
[...]
+2022-08-02T01:03:05 QR7JVCPzvZoUpHVFJUGe0kZiFmDl5KfS38SuDi7WaX 22259
CcL8QgIhlozC0ghz2m5txOZrZe9wtVDU0OULeKec76Mnk02 22566 f8 YVIXT 13734
PcarNOZ6tQ1BzLzsJffuNHtkS2wECqcQFE10SaVZTA2nix27dzxHsNOrBsO1u7JnLIBz0zRCjsqXHM
-3332
w7rGwm7zHq8PBQZ14NmWjn1e6DaOsU8Ez3z7ZeGxyoTTrMYf2UMkN91CiR16JhXx2IYnCk0eTqbOkEUE5lFYaV3xr7kdH07swgd5Na0ymYuW3rthEEIF2wYw6NhVK8
3102 9erfNkabOQF658k -22685
QPHWheNpPs5oIzW5WvkdzetmsppkRmiTRH8jVmghAmKFPWu5HZx0zOkbgndF1VlMASJl25bF85Zuf1R0Grv9k
17429 tFgrZvy9qsacqKIASWBeIR [...]
+2022-08-07T20:35:53 YIeXruJp 9119
GimkosorTjAZHbIoA62PbmIi2YRJybXDe3sFOSDadqAtKfW5OPOCQ8ZkmpG 25438
llZ74r7BpeFAIzZhUz6YoJENmFZ3bFCKefnHLaOv89f6WSy563Ab5rGV0ImFtBy3Ee
MIp1SCytnKxAOeKiAvw9tLjERowmUEUQO9dsJeSnPGPtV57yftGZnIgbPg8asl 29750
p6QvmVyfI5LbWDg1YcQQWkr0o6zpqGQ7cUXQomN0Bf6jM1jHq23JLRolyKS9lxJgXVNZYgZg30qosSM8cz3M6EqMHTqKcpLLfD0g7rupFQIq
8822
yxlfLtcqej6tWl8Pyzm40l3Fif3YqFvWk5zX2X15ZLS4WyOlY33Vzh41u1TwdEEJluVmoAdata77oVAXpTVXbplhvx8e4YZed6g7xrdaWVpURw4bFW81
-22961 BSfWOMiqEqpfOdArsN [...]
+2022-08-09T08:56:50 MAXe8F7Cc9fRvWe 11837
pgNtyt1tac4Qa8q1AGgzNYRE6BFQMQ7xfPla8YJG8fdLuBER9goFN0SiY -12375
KOsjdnSouVjOUCKDDRaWrjiXVU
P3hHfLRil0gydP4tPU5PUGFrcLzXwNSGVNreP71rxMjeqTrE4BjB 19979
48gDjcFunUxvVGlZ107C1lOnSJ6NwsF8AE5GEttKPZOoqJHDMGSCTW4dEZyXSEHCMqRfEflbT8qoebeDwRwYdlxbDpsLBQwOyV67GWArA64vESjlQKBdRiRA
25909
Dt5N3bcF065FYKh1DJiwG08rBrUzizd7DA5r1377tc0C0aeLzSGJTmmhdMk3YQ9MdPtEey2FY32YdHDoZxIB1YAVxFt1SRn5lSXAetFWon0XtkzR
354 2 31308 2W4G2hs3DaxePVokLIAhgBncF1HlDJ9R 4128
pX4kiRiuw [...]
+2022-08-10T20:03:07 ios7poniCbjPtRTiyfpDAsjuKOvSEWaQhuOQou1azovzj 29242
3aZUwMs4xlJggGwSW7ksL8PqVqh -25498
pqf2k0k4Sc4M6gxMvJm5z0bbzMuQtbsZqHnz1yTxTiMn5Fi0QiTOcnrVt5mnn5xS3H9iWHnyeEnGzBE
qo9svTOXmEblXUonsysOuvzxEyDT5XSvVqWR6q5aMX8bStNRSSSrqi0dUqe5QudTPgPgY6YJzB4JXdqs9l2UWYIeVt23dbAtOh1qHA71n2tTNgxvpN2Ln7t
-13442 L9Ehp 18964 pAozjyyc2RJfYCMWLmgwqZz1quLko3tnBL 11607
EQvwdve8TBimZufulwXojJD2tdDfiPA2V7whvBO6WfslRkzs4oZDAKalCsYnsmC588ZBmh1zQv7y1lRpFZ0t5PeEJZCpShEwekbErsFEDOiMYmUOfw1UtiltMA2qd
[...]
+2022-08-11T22:18:31 SJipPM9r6k8lPs8fUCbRX3RQeX5WPilclyPO5ZBIkUMqtLo 9545
xPV15xVAK8e3cB 17751
9LELwyOKWsu0Qtlhg1LI3EkBQwjlM8p7fZFMmOdEXohH0Xv2buSQWVWoIADNCfos7r7f2t0cQBgkVi7Mea7V1lYIUMpPd
T160Gnm3MdzRlZtFVNZGkiK5qYwYkJJ8XDhrRL6QJW1xxZZKTQ -7412
VycHdRZIJ2tx4Pdil9ZAeB -5398 czFrDEr4HX6qMLZeVxi 4466
bpbWn6ThTwb3E99xuMj0nm3HjO0b9ay5HAJtAXjFy9xYPd5BX4KUmWq38 -25569
VPPegqhXkBg2orzeOpqekqRCSi2O -22403 lxlkpgwCioz8N4U1fEelNMwGg1FY6b358yZjBXG
-11432 BxqbmSLKzqwYvU5yqqAFZUABWMRHzpm1C1fnlE1jRPbVI [...]
+2022-08-13T09:54:26 Mga5NBKIhkkAt 13882
uH7rwfEm6OycYW1VQmnTEdcRwLluj1QxnpK2TCOKbg5FqGeWyBVOHDjzQLvhkhyoPlBT7LT9wjmUyhGflvzkBBRmyUuodT7G1GdPRwZkRFCrYK7
29174 s8kv0L9Uc8Pbeie6yaTPj6MCpASRley2OQeKFLV014mzYJIsCNwt6Jrz1dTEMEaMD3
J1KYctnRw7IPKdxTj1DlAuwbWW2E0Grw4DUmaY3zCOdovfgCZCUfpcMfK1T5B7R7ePlY40twGYLrF9gt0lg5y5k5JBpUhGItyHQXhjJy6k01ML8pa4JTsfUa
-6452 raQ3Fs9O8l80qk -7699
2YO8Qiu70ixtCRWfnmIhCyRS1zuM1UTmIdZWZZ4EWUriPxTwIDCAv5GpbCwZxAHnKzcCQ5FqZcKmlWjwE6uQxPMRqaxpemZgYYjDG
19359 v58FsnmdzCJ [...]
+2022-08-14T03:11:27 4Iw80dXtWqS1 24553
QOSruda5Oh8k22qb8mXj5sWQDdJaM4GZLrjsXI7xBXJCGOhYk6nO4BisR -11589
tWLShGXEszVszt7f
Jbq1MbEOuHkadeHX5ovsIkySJTSof2uK2wp0CvCpPyfX8Y6nhfgsovcDQBtYLGNeKEdCCyA0nFeQ5pVUNPlMH0HioDwbjEZBN8Jvom3Sd8cikg7PeU
20917 Wjznw55EjSBfsbVWi3XvyHSLLvXOe5ACiNGZNtop3rir3XcrLPbnReFm
-31898
Oqddr2ykPOLqZHkEoFbI469XEt06pnkljjm1ToLcNVzrAKbozInCddijEJYU6QqtK1JpfqfSvOZ
19082 ru6VogxI4tBVfvAdxY4Z7zUD9r63mf3oXmgXgfx0uL8yQohOKvjrj5zkUQ96ZG4jUpZ
-10603 PjUzr5vEFNzeAbcz479oI7gtVYUI6 [...]
+2022-08-24T06:48:11 8USsRLWzsq2Epgw9VP -3213
lmynJIHlRvFkjfGxcPRBsnMVscaVNkWGwJSOiXCsoX8WQeauheB3WkCzdaaDSKY6NFfyzO1ZeE9QfhRdpaPFOEvuXT
21277 i9sG
0azPuC9cCVuec9SBUMcziviaUsOItHrv7uapsHuAWGdvhj7KdgW4ActLVEJnhVq5cAiSbOEns5wPGylyMMaB456kjazeGIR2HDb5z8lufkSfUC6MYkQ75
24802
KaBzVdybCa5s61GSC5FHvzT2CjCUA8PG5VnNMKWYPgKok4bPTZ5XGfRqXdATDDNcIbD3gT28TXcMUi5aubHeIbyPCUmAaEHkd9M16L8qLo
-1231
RCm7BvNtAL5ZVdtlTUYxWPjFF6DJGRQ64LrQzrDuV1hqQ6tT6bxMy7weFBYfYBVJMgVXCgVkizi4MqT1s6op9BTpfWK2zsm5utA
17581 eJ [...]
+2022-08-25T06:14:54 6ZOp -8101 ndeIhwrGbS1HnTvPS5tr3 12131
GZxebZkc51ko6
FWbSMHKWQLFzB23Drq5OTD1gw2bWYdqPyUjRfBpx3Pu1tMfE6lVoLxaCGfgOX5cds2uOPz4tY9mNHC7ZyXNgjmnGvL6R3bLdXbpjoP3tRIUZLFjXhQkTKpPN
-10729
nMNvb3EHVdLlb5igdIJ3ETGI1pyBTxwZymZtOoN6h04uH11DetKWje5FQN2kFBoQJAexgD3fZD8uoAOOUGAS23xgPE6XxWl82oej2ILyk
-12036
nMcGFTBSCvaxWxLifhRnEHMTX0ArddTrN0jTZrbvOh4vwp4RmixTrd9yiXSsbmDR3mSKVrOcFgHLeBzNyR8WSrV1H
16504 VU1aZFxX5J8HArOda1isQAHo2wX -12677
KKwHer4WETeCaCFx16uSYsiEXjNDhq4 -26224 wr3 3305 [...]
+2022-08-29T20:36:50 GvxTrorwGdX9 -10054 zMh3KEC -14529
EpQTfGIQGF2kewVgZTEqdXzp7PNw7Mc29FFEd 11231
CXRaxRnn3Shidro8jidiWuvqwFNTb8HncBSAxiXBz6fkl0fPkWbTn4OBPzk0XhxBoeUjibIsS8s45sNA
27429 HyPDKDF92EhIMMJrtry7fFD -3561 d2SHemB8xeT0Vuq -23101
cFiYqmAQXpikFaomMvWWlfAusJV5OABnZ6gs0Mipv4o68fzVvKEANw0yjI4BLNFoX9sHp3FHTrNVEGKABGnXMG3JYYvugYC62Ev8CjU3nEWaXpkzHpiOIdey
-4913 A3eLTXFXGD5PqwXsMAyS5DfcaU5GXYwMDAiYy 23002
YFnEuse7k7VrslP5IEdNsV1XZmNmfxkdOXLdLBGTyGv5Jrx3ruCFexDxuM6h9W3pWZrVYPYOqbj6MJlFh
[...]
+2022-08-30T05:40:51 bp32t16EYYWh3Co6Y7DE265E4V6nFliGbj3nHr5LZGMSbpw -31806
dh1G5JEsD66ybysLapmUh9SYd 27169
20PQibLCIgH59xazkzBvJRuVChfIDapY3qAr5MRaLQCV2wq4wLyTgDuwKJpp4Qm gPPxw4DQ
-18259 t77JrV1ow1cWrQo75QRqo2NgT4KyYZz 32344
pK9QEdJQqd2DNuAQzUF94O6Ig4jsa495e7ZNspgieopGL7sHB5tVRUdQQbno3gt0L4vJ6sXqB0ZfT04t1y893oq2nGU1ROEEEgfatsTb8WVtk1d4xvRkzSAX9anj5A
-437 3d17y7XFK6I7G4n1xtmp12z2ykSGY3lhQ2mNFZns3yRXE2Ru3XtAYJXtXM74nj3GIWl50
22525 olMSvluv9jYg84uWSWPHEx 32059 -6242
rFZTDb69D3rGnC0IoYcNcPx [...]
+2022-09-06T00:33:15 7P0eQ68D4gv1dP0gf 20449
8stHMwOPOdVIGJlPXTLHtMtkL2vkb1XzrU4EUjpXUs9C1trmElpl6f81vwJg8SfeWA5HVmWpLOwXf4Z3ffSi6Nhiyc4sQIPf
-410
20NNQNz9wtvU1XP4VVfyjuThIgk0LBjZvvOjsHUDXIWZahAiXuMt4icS2gDAvampzXAM4tK7z3LdQqR37aoFZx
ttOU7RemKgoYhpjcKDT18dgN1mHgsV -17527
3Eg7DZMVn93VGTMMn31GzXtU387ElNXvyU66MDCk1uqvIuvfZvLFb9hyKDaNoqGzuy0y6OonOVKrwwp4ERT5yj7sj5KpRR1SQ0uznPD36
9598 kYEAk2Y5lCDCGhe3OSUQaagEzM2WIUow8dY4f0eXPhOUrIHLmf5dKdw 12993
mgbRJMtw5T1FRUgEVqS4FmOFIYhBbv8Dp576Pm8fXX32AOtR [...]
+2022-09-10T01:48:45 29A4DtXhDWJK6vs0sh4L 26725
lXOBHHNmACaAnA78QD1rAATrB7iwIMmywpg1zy3MrtGF8b6na89Bd6kcpjouyq1L5KAMKw3eDQy73QMwV4LcRl84swraJtCbKd2D1MedycwhNmX9gwGPdEWNoz
-9087
7vvExj0WkDD68Mtt037ifNJUcwDTFOi4mfRquLoxnUSGlSlV4CJs2dx000QBEpaGgXPlv
fMrE9PW4jhFdLP3LX8Q4La1EwP4dQ16Tdun7vwnRMkKxillIsvtqo1KwsdEuegKldDKaKOSbBsBE9jRCKyVl4HRuP0ZRcM9NNNMp7Ai
11714 0uIsU3FyQq2ap0cElctUz1tPpiAKCYG72eJ55wfzlZyhk -2571
DmqQZkVojBNnadmCHS5ZteSSmAkTiangh 12059
4ZV4dPfpFQFsZnXPqyDHYh1tWgHzYd1azHGK2hv4hWyv [...]
+2022-09-11T12:35:46 2jU9djXRNHBSAiWwizyl3nAnZ3eVo0vUKa -1569
3nF41eZb 6017
2Sy8WRGT0CzX8QN4arNXKHShv68emgBcKx2qPqsP4fFvLbMgsAhcmu2osUgoAliTofbSHShPU2PK8t8zeyNnl
6LeqUXNJOQwVXkna9ggUZHtSeiEcvhh3Lm3crXLIms78s5M53Ccgs64ogO -3250
fYML7Oa5NF9hrlBsJYJwkcn2ZChP4h20Pq0N98jWbp5fa1pBDhxwzbQ1B 20240
2LOk60Rrl6vxJSnhIqvR7Vp3mDxU2droCTPi5Awt50ZNblZ4AVEMnqi2FLwzLQ5uxKYhpJxbocKpWwASNW1F0nn3XxAr19Oht9JS8w0mMFWfkHtpsAQ9CE
-15908 57A9V2GDyjBqsQ4JeFPGsH6wQTfpTm1y8UyBpThc2b5Xx -22902
wtVfUMc3h8LpEA5cmy2IItG [...]
+2022-09-12T09:10:11 32d8UCPyMZRHaU3zMh 28859
tz3Q7iqVgjZm5ARoCVCmnFCeZrkz4WjE02iJS2jYj5HYilpAMvtgyiBfSaoHYif7XF6W -25752
qE1iW0KlxthjEEpGHfJH3hDXXRH5UnZGyHIeZ8zi9qRDYlS8cOCJVYKU2H3qrXRbbJWF80jdg4xJRmn2JqaGXesImzNTClLvHrqOUTBreFiA1E9fJW4c3XDbOC7q
RoskNBgoGV854cJ2WJ1viTHfRrvy6pJeAkPTdezhDZziuRxatUeEJu3apy3rwKX7In3rAmMSzXu4ahAK62C
9800 jlHYR3rqAHmaioe64BRCyrZEXALrx5Jr3ZVElvyMpGVevby 26380
mM12Cr4iJfZEgPkt0330DhlSTX0hkirZ45PaVY1tmAEf5dmRHR5EeLvLK2BUySAZnolky6Fy
12544 SMo0cv6vbsMmBStyA1mWsJrH [...]
+2022-09-16T05:29:04 7kQWFmGIYx1WQKJMLMH 24899
aXAR5LTjWGKS3HVaZ9H5btUwiDLkR408lVWidgxRq6pBCeexUVI7WzPuQMDkyemTYTJcinvu5BqtDttHCvizuDhXS5Hb12
831
dsFHm7mVYAASSgmoCtCrsTNdhYPXerIioC9ecdByZzrfiJRzrlIK24iq6ESoeO5cJMtPKjC2onLkqWM187mw8UM75xtQpv5t3om6s3
s5j4dzN0JSLzz8hUqIfmYW83MxXs8Ht9DE6ikgA8 -5577
xdEoGUGPsFjXLeY8KjpyLIrKTquTaPpEexvOP4lReTpmJNhhD0DriCuxSDqXSx -32215
csbEzAqbCvBcid80rOATAFoOn8urZjRfWmEyATnYNYWitF143bGYo7xbzjcYV8UBLm -29403
3yJD279YK3D7 -7684 WuH1eTqFtFoppikOCZvCkbkNccbSjctXn7 [...]
+2022-09-16T07:33:37 OtTikv4tpnQu0qttjJsSpRGPXkbfo 15627
R3d2IUUwowMrk8Flk1ZA0lUOM9pkHOMSjOa -6355
nKptDhPPCgaDaqJrzqPNhl4l2yYNLnaG2tH9
ZJobY7kLJiqYR3GEMo843UZfrd6g2wqcVGhx27OkqEa8qQjRBP2shFgEKxA9VFF5JydfrtusDZu5IeiCy9Ky7pGO6AS
1587 oO4XDriZupSpmUD40JotwEHi7hLm 17358 ghhLj1VgIi3cBrzjOi
8601
fUaKWB1taHma6OjZ4eXAZcufSbFKtSaHEeXPDxfORbD0b69mrviAx7TDGW9nlci6gxew4TE0mijyVnpq1QCcR6WjWtaon7LbXvpbj2WcA2mfLHWaTI7Ukwzvruwyf
29943 rtExa1tdS0sZFZw -19269
HJCIusU0vbuYO8mH8lh87D9QED0yvv9UhMAA5TXv7lOPND [...]
+2022-09-16T20:32:35 gEXq5tWr01dts9o -21529
nGwn29B3937dhw8kXOGQK65Wef37rNCtKd5jUQ3B7Mc1cqHYflO8DfeMMaqk3GBIFjcZjaj4QCvXz9hbJZSheRTUILrU8oXHqKaW4KFkEjqT0gorD
-20373
wpbaLleATjJqOjZb6TWgAvHx9xesnUvQlRSoKTLwTGrljY9SEnxi0UNdhnmb62nAwI91GurTn1WMmkmpgbYrXII6bQD3UXYiqyoC7C1jQaVI5
A9Qm8P4WYnZWGmLaWDMGzTqSgktuqt8znuB0BgXYpAw4OESH4kc9BPSZrd1BnCsfxBIUZmrEMSHrNggxB2uyNIz1Kz4aPxPjra1CdiLzLI
-5706
IcmpcyR8qQj9bK2Oi4HmH16C0pMdm7jDOKVJnD6wBha0xN00Ws5g9XnLiSl5X0h5uBcDgvXeFhFkbSdLqDCy36YA
-26373 jYfS5VlBU [...]
+2022-09-24T03:16:30 53quQf27S6KSqcZQpRUEzBpJ4Xxk9OtZ3KeJ8 4179
PADffGeW1NA6g914GPWDecsESwt2VPahKscaPA7lVtprFEWFTsu4QhlItQPL7iWTSucNJAAOTkU0RMw1BdhxmFuA
12851
succ5d1w9r2H87FOrn2RaKEYYOdGnsxrnPAu9j3F7QIzAPSbkTwg4zSQWADRsqpk19B11gLz8maZ6pBAYFG4hIu3EYrwEaXmqWM
RQZ1lTGQOXcsZPgi8BMOYT988vNm0jUqL0tu63DaKN7hbKFFkWDO19nCJolgN9CNeBW
30105
3lKrwzJfezx5FPJPmberjtZV3P4OwmbFb2AGNvBh5l1lb1wDHzUVSfUXZvfQRCo07KYzxkdJWtWiqg5Xv4clpwaVixKfTnyyhuNW3HVpsLTeF0pX4laqOJ
-3665 TA1LvE1P4 17216 i8mnHDsPAHBXdrr0D5x [...]
+2022-10-07T05:48:23 T6UdBTIM -4619 gjD4Ud6OacSs3L2X 5706
zIapTXatq3vavxhD0OXpZylCBnwbanbrsRtpTxrq7Ly40bDJBEvIR2DSZ7hxG3s5ubJN6ym02
6Dzqgz7jXR1DpDRI7RNOgsq -22639
367cXOSW6VAu0UwJrvxeCxNXCYkqwNrXkgi3783Gttb06qzq2iUBkgTMvKHmVuk1MVlqdGHEdpJg3wg8Fk7V0ypZA80xwNw1FIhU2WhkvEkqQfShf5mwxYdSC
-14408
UmHOwTtShosQ5hIkJZZ1cXaZIy80w1YVdqsK6RIR8ooRRcaSfE6tjIls7P9G4stmOLCucImq2hY1LL0TeE8vjRvgcET6mOHN9SvJMgM4UwipD7a4PAIg4IvCQ
-21696 Au5nsZusc4HZdQPH 16176
LkwuRd0oG92izSOGgqikdGVeHVNH0UVOIvpvPERhWmqUSCWAt [...]
+2022-10-16T20:21:42 QSVmu1L6Kv -31182
SqjPkTwKoMpbvTMlDpap8mhgwgD6P0IEJcqgdFe2PmwPxpSaArY4A0TRbbGxbMNNBgtCwZoVfbkCROgZzPIXtAItuFC7RyNflOX9isuc8awEa1AI
-2494 P7xx1sxiXxwAjFu27zTasDWThickZfxv8hcsjPg vmWV1SRlsawmM -29317
ob9jssCKbxqkKmsA8 24945 xZD6FcRG -32620
DtOM3sRlgCpOdKgmm2qYaHqb4dq8CeULwwAiH2NAcNRZB10YIzG2JjItKKefZ1HuwNwRTdexx3s
-5119 e7J6uAGIIG57wMyHlMiH7mNsFdo3wdKunhVUBqv4Yx6f7 31672
G1wm7CNDsDWnLUJ7Eu0J9blC7BqdAsdXKqSuE3dXcI -8015
9YeiC5ndIiUqFncfpuNNT3wnKEppm81gogr8n2YHhUOTtR4Qqgl [...]
+2022-10-25T11:13:34 i4kqwgjvm 30056
2mornjwbuCcbEO3IT8ujjyvdjdqiIMcOmgLF4gl1B4gU1QTNSBwUuLdtHVETfR7PCsO7BLgkZ9TpMJAEPG4sE31ov5bt0PJkYAEgRvKPaDMWHpo2vuprTx
8009
K6cOagIV8qIDhqrFNIi1hTFBWDNj6DPpa19wmzpkW8skRNDXrH4ihsq0LXnUmf1wqjp4BJCvqBeLdKECdogBLhOONXdyITce6cnf9rHTknKrcZKeSTst5PIW1
mpzhmZ6K5KV9wFy9Z19GO1rfNoLFNfkP06v5i0ll7TtaNNSjkWtvLzOv5YgrlEpaiASRikL2npzTZJaduTPBHzOWc3UyqEE2EtbInjlWdW4vCun8
-31484
YPirmBPwW5b0pQRlCSjdp5Fkc4Cb7G5cic5lG8gIl66nHPhoUYdUzZ6jTqYST2Q2c2g7w7HlAGt4WibwUnz4
24183 [...]
+2022-10-26T21:04:40 JY8hElHRxvLIt2iYlx 14145
1aTsZCsGGN2PFoGkt4mfBheFQp9qAfILtCGEwQfm3tyDpJKYjjuVeFar1ifGkuvCxpkt8ZY -26409
R6WXBiY0WkzCbJFeNi0izwcwiJUPC2VLMkm6zPaEd6Ax70em9PUXMR9j02xcI84q4ND1
2KlDpiQyn2gemwH2biHs2Y0droYTk2ndz3t1n9eb7FGSlggCX51MKuTLIgFm2EnIcY8q0MdAOPaQKDi06ni5JL3dnK98MC8xCN5A9m8xQXwRsn6jRKv
11216 HYVCFzUncYmPusJXfmSmNCSI0FIJSWrN 13477
bblF8j0L52bivBdpT6PjXDPCiXz3AwhEE32M5EElzo25zGxTdjbArydxLXNNy5mYY153b0Xs8Pcg3wWsbfW
-11938 JLZgoCFhDrgYG7ec3B9CH2GkHmSa6idugp5uJ0p56ypWqM7 [...]
+
diff --git a/regression-test/suites/insert_overwrite_p0/ddl/create.sql
b/regression-test/suites/insert_overwrite_p0/ddl/create.sql
new file mode 100644
index 0000000000..954af0c525
--- /dev/null
+++ b/regression-test/suites/insert_overwrite_p0/ddl/create.sql
@@ -0,0 +1,194 @@
+CREATE TABLE large_wide_table (
+ `stat_date` datetime NULL COMMENT '',
+ `user_id` varchar(50) NULL COMMENT '',
+ `is_white_user` int(11) NULL COMMENT '',
+ `white_user_name` text NULL COMMENT '',
+ `gender` int(11) NULL COMMENT '',
+ `gender_desc` text NULL COMMENT '',
+ `user_tel` text NULL COMMENT '',
+ `user_status` int(11) NULL COMMENT '',
+ `user_status_desc` text NULL COMMENT '',
+ `register_source` int(11) NULL COMMENT '',
+ `register_source_desc` text NULL COMMENT '',
+ `is_register` int(11) NULL COMMENT '',
+ `is_register_desc` text NULL COMMENT '',
+ `is_new_user` int(11) NULL COMMENT '',
+ `is_new_user_desc` text NULL COMMENT '',
+ `is_staff` int(11) NULL COMMENT '',
+ `is_staff_desc` text NULL COMMENT '',
+ `is_official` int(11) NULL COMMENT '',
+ `is_official_desc` text NULL COMMENT '',
+ `user_platform_array` text NULL COMMENT '',
+ `user_platform_info` text NULL COMMENT '',
+ `delete_user_array` text NULL COMMENT '',
+ `delete_user_info` text NULL COMMENT '',
+ `is_delete_user` int(11) NULL COMMENT '',
+ `is_delete_user_desc` text NULL COMMENT '',
+ `new_user_id` text NULL COMMENT '',
+ `region_code` text NULL COMMENT '',
+ `region_country` text NULL COMMENT '',
+ `region_province` text NULL COMMENT '',
+ `region_city` text NULL COMMENT '',
+ `region_district` text NULL COMMENT '',
+ `region_parent` text NULL COMMENT '',
+ `home_region` text NULL COMMENT '',
+ `home_addr` text NULL COMMENT '',
+ `home_country` text NULL COMMENT '',
+ `home_province` text NULL COMMENT '',
+ `home_city` text NULL COMMENT '',
+ `home_district` text NULL COMMENT '',
+ `home_parent` text NULL COMMENT '',
+ `company_region` text NULL COMMENT '',
+ `company_addr` text NULL COMMENT '',
+ `company_country` text NULL COMMENT '',
+ `company_province` text NULL COMMENT '',
+ `company_city` text NULL COMMENT '',
+ `company_district` text NULL COMMENT '',
+ `company_parent` text NULL COMMENT '',
+ `nick` text NULL COMMENT '',
+ `avatar` text NULL COMMENT '',
+ `birthday` text NULL COMMENT '',
+ `occupation` int(11) NULL COMMENT '',
+ `occupation_desc` text NULL COMMENT '',
+ `hobby_id_array` text NULL COMMENT '',
+ `hobby_name_array` text NULL COMMENT '',
+ `hobby_info` text NULL COMMENT '',
+ `intro` text NULL COMMENT '',
+ `account_create_time` text NULL COMMENT '',
+ `account_update_time` text NULL COMMENT '',
+ `account_register_time` text NULL COMMENT '',
+ `passportc_create_time` text NULL COMMENT '',
+ `passportc_update_time` text NULL COMMENT '',
+ `user_register_date` text NULL COMMENT '',
+ `user_register_hour` text NULL COMMENT '',
+ `user_create_date` text NULL COMMENT '',
+ `user_create_hour` text NULL COMMENT '',
+ `register_last_page_name` varchar(255) NULL COMMENT '',
+ `register_last_page_name_desc` varchar(255) NULL COMMENT '',
+ `pv_0d_cnt` int(11) NULL COMMENT '',
+ `event_0d_cnt` int(11) NULL COMMENT '',
+ `is_0d_open_page` int(11) NULL COMMENT '',
+ `is_0d_open_page_desc` text NULL COMMENT '',
+ `is_0d_active` int(11) NULL COMMENT '',
+ `is_0d_active_desc` text NULL COMMENT '',
+ `is_1d_active` int(11) NULL COMMENT '',
+ `is_1d_active_desc` text NULL COMMENT '',
+ `is_2d_active` int(11) NULL COMMENT '',
+ `is_2d_active_desc` text NULL COMMENT '',
+ `is_3d_active` int(11) NULL COMMENT '',
+ `is_3d_active_desc` text NULL COMMENT '',
+ `is_4d_active` int(11) NULL COMMENT '',
+ `is_4d_active_desc` text NULL COMMENT '',
+ `is_5d_active` int(11) NULL COMMENT '',
+ `is_5d_active_desc` text NULL COMMENT '',
+ `is_6d_active` int(11) NULL COMMENT '',
+ `is_6d_active_desc` text NULL COMMENT '',
+ `is_7d_active` int(11) NULL COMMENT '',
+ `is_7d_active_desc` text NULL COMMENT '',
+ `is_15d_active` int(11) NULL COMMENT '',
+ `is_15d_active_desc` text NULL COMMENT '',
+ `is_30d_active` int(11) NULL COMMENT '',
+ `is_30d_active_desc` text NULL COMMENT '',
+ `is_7d_within_active` int(11) NULL COMMENT '',
+ `is_7d_within_active_desc` text NULL COMMENT '',
+ `is_15d_within_active` int(11) NULL COMMENT '',
+ `is_15d_within_active_desc` text NULL COMMENT '',
+ `is_30d_within_active` int(11) NULL COMMENT '',
+ `is_30d_within_active_desc` text NULL COMMENT '',
+ `is_7d_n0d_within_active` int(11) NULL COMMENT '',
+ `is_7d_n0d_within_active_desc` text NULL COMMENT '',
+ `is_15d_n0d_within_active` int(11) NULL COMMENT '',
+ `is_15d_n0d_within_active_desc` text NULL COMMENT '',
+ `is_30d_n0d_within_active` int(11) NULL COMMENT '',
+ `is_30d_n0d_within_active_desc` text NULL COMMENT '',
+ `is_7d_continue_active` int(11) NULL COMMENT '',
+ `is_7d_continue_active_desc` text NULL COMMENT '',
+ `is_15d_continue_active` int(11) NULL COMMENT '',
+ `is_15d_continue_active_desc` text NULL COMMENT '',
+ `is_30d_continue_active` int(11) NULL COMMENT '',
+ `is_30d_continue_active_desc` text NULL COMMENT '',
+ `is_1d_retention` int(11) NULL COMMENT '',
+ `is_1d_retention_desc` text NULL COMMENT '',
+ `is_2d_retention` int(11) NULL COMMENT '',
+ `is_2d_retention_desc` text NULL COMMENT '',
+ `is_3d_retention` int(11) NULL COMMENT '',
+ `is_3d_retention_desc` text NULL COMMENT '',
+ `is_4d_retention` int(11) NULL COMMENT '',
+ `is_4d_retention_desc` text NULL COMMENT '',
+ `is_5d_retention` int(11) NULL COMMENT '',
+ `is_5d_retention_desc` text NULL COMMENT '',
+ `is_6d_retention` int(11) NULL COMMENT '',
+ `is_6d_retention_desc` text NULL COMMENT '',
+ `is_7d_retention` int(11) NULL COMMENT '',
+ `is_7d_retention_desc` text NULL COMMENT '',
+ `is_15d_retention` int(11) NULL COMMENT '',
+ `is_15d_retention_desc` text NULL COMMENT '',
+ `is_30d_retention` int(11) NULL COMMENT '',
+ `is_30d_retention_desc` text NULL COMMENT '',
+ `is_7d_within_retention` int(11) NULL COMMENT '',
+ `is_7d_within_retention_desc` text NULL COMMENT '',
+ `is_15d_within_retention` int(11) NULL COMMENT '',
+ `is_15d_within_retention_desc` text NULL COMMENT '',
+ `is_30d_within_retention` int(11) NULL COMMENT '',
+ `is_30d_within_retention_desc` text NULL COMMENT '',
+ `is_0d_attend` int(11) NULL COMMENT '',
+ `is_0d_attend_desc` text NULL COMMENT '',
+ `is_1d_attend` int(11) NULL COMMENT '',
+ `is_1d_attend_desc` text NULL COMMENT '',
+ `is_2d_attend` int(11) NULL COMMENT '',
+ `is_2d_attend_desc` text NULL COMMENT '',
+ `is_3d_attend` int(11) NULL COMMENT '',
+ `is_3d_attend_desc` text NULL COMMENT '',
+ `is_4d_attend` int(11) NULL COMMENT '',
+ `is_4d_attend_desc` text NULL COMMENT '',
+ `is_5d_attend` int(11) NULL COMMENT '',
+ `is_5d_attend_desc` text NULL COMMENT '',
+ `is_6d_attend` int(11) NULL COMMENT '',
+ `is_6d_attend_desc` text NULL COMMENT '',
+ `is_7d_attend` int(11) NULL COMMENT '',
+ `is_7d_attend_desc` text NULL COMMENT '',
+ `is_15d_attend` int(11) NULL COMMENT '',
+ `is_15d_attend_desc` text NULL COMMENT '',
+ `is_30d_attend` int(11) NULL COMMENT '',
+ `is_30d_attend_desc` text NULL COMMENT '',
+ `is_7d_within_attend` int(11) NULL COMMENT '',
+ `is_7d_within_attend_desc` text NULL COMMENT '',
+ `is_15d_within_attend` int(11) NULL COMMENT '',
+ `is_15d_within_attend_desc` text NULL COMMENT '',
+ `is_30d_within_attend` int(11) NULL COMMENT '',
+ `is_30d_within_attend_desc` text NULL COMMENT '',
+ `is_7d_n0d_within_attend` int(11) NULL COMMENT '',
+ `is_7d_n0d_within_attend_desc` text NULL COMMENT '',
+ `is_15d_n0d_within_attend` int(11) NULL COMMENT '',
+ `is_15d_n0d_within_attend_desc` text NULL COMMENT '',
+ `is_30d_n0d_within_attend` int(11) NULL COMMENT '',
+ `is_30d_n0d_within_attend_desc` text NULL COMMENT '',
+ `is_7d_continue_attend` int(11) NULL COMMENT '',
+ `is_7d_continue_attend_desc` text NULL COMMENT '',
+ `is_15d_continue_attend` int(11) NULL COMMENT '',
+ `is_15d_continue_attend_desc` text NULL COMMENT '',
+ `is_30d_continue_attend` int(11) NULL COMMENT '',
+ `is_30d_continue_attend_desc` text NULL COMMENT '',
+ `client_type` text NULL COMMENT '',
+ `client_type_desc` text NULL COMMENT '',
+ `inviter_user_id` text NULL COMMENT '',
+ `biz_id` text NULL COMMENT '',
+ `biz_id_desc` text NULL COMMENT '',
+ `register_type` text NULL COMMENT '',
+ `register_type_desc` text NULL COMMENT '',
+ `device_info` text NULL COMMENT '',
+ `scene` text NULL COMMENT '',
+ `event_source` text NULL COMMENT '',
+ `event_source_desc` text NULL COMMENT '',
+ `event_source_level_1_desc` text NULL COMMENT '',
+ `event_source_level_2_desc` text NULL COMMENT ''
+) ENGINE=OLAP
+DUPLICATE KEY(`stat_date`, `user_id`)
+COMMENT 'OLAP'
+DISTRIBUTED BY HASH(`stat_date`) BUCKETS 10
+PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2",
+ "disable_auto_compaction" = "false"
+);
diff --git
a/regression-test/suites/insert_overwrite_p0/ddl/insert_overwrite.sql
b/regression-test/suites/insert_overwrite_p0/ddl/insert_overwrite.sql
new file mode 100644
index 0000000000..4bc55097d0
--- /dev/null
+++ b/regression-test/suites/insert_overwrite_p0/ddl/insert_overwrite.sql
@@ -0,0 +1 @@
+INSERT OVERWRITE TABLE `large_wide_table` VALUES ('2021-11-14
09:19:39','xQQ6PC3LS5yQ8rZJ8WwUEHzHlXtVALhQREtLy',26949,'Vhe8WAGjgbR5dmQdbAJO0BYy1yrHIBj76rQQr8XayY4fHUM4E59d8yVUcikKmwmFD4',1171,'e58MOhRdFTU3sZbmxwkeUjB6LW6h4b','ZM2uECnYGGDHPHBZNJmUEgXrt',18077,'nf04JhsLUfE19MQymQNXzdqf4dbQgDkqkjANzVOBIeV0dzfukBe',24243,'GfcHuqnfse03FsdHBg4kZ5zxmS2nsPE7p2HDUrJDnQKqTNLwXQbSNb6tQMkXH2qMGJqGm6xguXVF2hZJOLUbE1ETYs1eVRr9qYV1jPkD',-6774,'fi1G6SrqiCnQRMnm1nhB1g7GksQHKjQ7ktdW58gtGUb67OED7iyawkyQvPX
[...]
diff --git
a/regression-test/suites/insert_overwrite_p0/insert_overwrite_table_list.groovy
b/regression-test/suites/insert_overwrite_p0/insert_overwrite_table_list.groovy
new file mode 100644
index 0000000000..3d55d8294b
--- /dev/null
+++
b/regression-test/suites/insert_overwrite_p0/insert_overwrite_table_list.groovy
@@ -0,0 +1,163 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_iot_list") {
+ def dbName = "test_iot_db";
+ sql """drop database if exists ${dbName}"""
+ sql """create database ${dbName}"""
+ sql """use ${dbName}"""
+
+ try {
+ sql """
+ CREATE TABLE IF NOT EXISTS test_iot (
+ `test_int` int NOT NULL,
+ `test_varchar` varchar(150) NULL,
+ `test_text` text NULL
+ ) ENGINE=OLAP
+ UNIQUE KEY(`test_int`)
+ PARTITION BY LIST (`test_int`)
+ (
+ PARTITION p1 VALUES IN ("1","2","3"),
+ PARTITION p2 VALUES IN ("4","5","6")
+ )
+ DISTRIBUTED BY HASH(`test_int`) BUCKETS 3
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2"
+ )
+ """
+
+ sql """
+ CREATE TABLE IF NOT EXISTS test_iot1 (
+ `test_int` int NOT NULL,
+ `test_varchar` varchar(150) NULL,
+ `test_text` text NULL
+ ) ENGINE=OLAP
+ UNIQUE KEY(`test_int`)
+ DISTRIBUTED BY HASH(`test_int`) BUCKETS 3
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2"
+ )
+ """
+ sql """
+ CREATE TABLE IF NOT EXISTS test_iot_err (
+ `test_varchar1` varchar(150) NULL,
+ `test_varchar2` varchar(150) NULL,
+ `test_text` text NULL
+ ) ENGINE=OLAP
+ UNIQUE KEY(`test_varchar1`)
+ DISTRIBUTED BY HASH(`test_varchar1`) BUCKETS 3
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2"
+ )
+ """
+ // overwrite not existed table
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot_wrong select * from
test_iot1"""
+ throw new IllegalStateException("Should be not existed table")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+
+ // overwrite with unqualified data
+ sql """ INSERT INTO test_iot_err(test_varchar1, test_varchar2,
test_text) VALUES ('xxx','aaa','aaa'),('xxx','ccc','ccc') """
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot select * from test_iot_err"""
+ throw new IllegalStateException("Should be wrong data")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+ // overwrite with empty data
+ sql """INSERT OVERWRITE TABLE test_iot select * from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with values list
+ sql """INSERT OVERWRITE TABLE test_iot VALUES
(1,'aaa','aaa'),(4,'ccc','ccc')"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with origin data
+ sql """INSERT OVERWRITE TABLE test_iot select 1,'aaa','aaa' """
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with another table
+ sql """ INSERT INTO test_iot1(test_int, test_varchar, test_text)
VALUES (1,'aaa','aaa'),(4,'ccc','ccc') """
+ sql """INSERT OVERWRITE TABLE test_iot select * from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite table with some cols
+ sql """INSERT OVERWRITE TABLE test_iot (test_int, test_varchar) select
test_int, test_varchar from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with label
+ sql """INSERT OVERWRITE TABLE test_iot WITH LABEL `label1` (test_int,
test_varchar, test_text) select * from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite not existed partition
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p3) select * from
test_iot1"""
+ throw new IllegalStateException("Should be not existed partition")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+
+ // overwrite with data which is not in partition's list
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) select * from
test_iot1 where test_int = 4 """
+ throw new IllegalStateException("Should be wrong data")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+ // overwrite partition with values list
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) VALUES
(1,'aaa','aaa')"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite partition with origin data
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) select
1,'aaa','aaa' """
+ order_qt_select """select * from test_iot"""
+
+ // overwrite partition with another table
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) select * from
test_iot1 where test_varchar = 'aaa' """
+ order_qt_select """ select * from test_iot partition p1 """
+
+ // overwrite tow partitions with another table
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1,p2) select * from
test_iot1"""
+ order_qt_select """ select * from test_iot partition p1 """
+ order_qt_select """ select * from test_iot partition p2 """
+
+ // overwrite partition with some cols
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) (test_int,
test_varchar) select test_int, test_varchar from test_iot1 where test_varchar =
'aaa'"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite partition with label
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) WITH LABEL
`label2` (test_int, test_varchar, test_text) select * from test_iot1 where
test_varchar = 'aaa'"""
+ order_qt_select """select * from test_iot"""
+
+ } finally {
+ sql """ DROP TABLE IF EXISTS test_iot """
+
+ sql """ DROP TABLE IF EXISTS test_iot1 """
+
+ sql """ DROP DATABASE IF EXISTS test_iot_db """
+ }
+
+}
+
diff --git
a/regression-test/suites/insert_overwrite_p0/insert_overwrite_table_range.groovy
b/regression-test/suites/insert_overwrite_p0/insert_overwrite_table_range.groovy
new file mode 100644
index 0000000000..e00ce61684
--- /dev/null
+++
b/regression-test/suites/insert_overwrite_p0/insert_overwrite_table_range.groovy
@@ -0,0 +1,163 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_iot_range") {
+ def dbName = "test_iot_db";
+ sql """drop database if exists ${dbName}"""
+ sql """create database ${dbName}"""
+ sql """use ${dbName}"""
+
+ try {
+ sql """
+ CREATE TABLE IF NOT EXISTS test_iot (
+ `test_datetime` datetime NULL,
+ `test_varchar` varchar(150) NULL,
+ `test_text` text NULL
+ ) ENGINE=OLAP
+ UNIQUE KEY(`test_datetime`)
+ PARTITION BY RANGE (`test_datetime`)
+ (
+ PARTITION p1 VALUES [('2023-04-20 00:00:00'),('2023-04-21 00:00:00')),
+ PARTITION p2 VALUES [('2023-04-24 00:00:00'),('2023-04-25 00:00:00'))
+ )
+ DISTRIBUTED BY HASH(`test_datetime`) BUCKETS 3
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2"
+ )
+ """
+
+ sql """
+ CREATE TABLE IF NOT EXISTS test_iot1 (
+ `test_datetime` datetime NULL,
+ `test_varchar` varchar(150) NULL,
+ `test_text` text NULL
+ ) ENGINE=OLAP
+ UNIQUE KEY(`test_datetime`)
+ DISTRIBUTED BY HASH(`test_datetime`) BUCKETS 3
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2"
+ )
+ """
+ sql """
+ CREATE TABLE IF NOT EXISTS test_iot_err (
+ `test_int` int NULL,
+ `test_varchar` varchar(150) NULL,
+ `test_text` text NULL
+ ) ENGINE=OLAP
+ UNIQUE KEY(`test_int`)
+ DISTRIBUTED BY HASH(`test_int`) BUCKETS 3
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1",
+ "in_memory" = "false",
+ "storage_format" = "V2"
+ )
+ """
+ // overwrite not existed table
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot_wrong select * from
test_iot1"""
+ throw new IllegalStateException("Should be not existed table")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+
+ // overwrite with unqualified data
+ sql """ INSERT INTO test_iot_err(test_int, test_varchar, test_text)
VALUES (111,'aaa','aaa'),(333,'ccc','ccc') """
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot select * from test_iot_err"""
+ throw new IllegalStateException("Should be wrong data")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+
+ // overwrite with empty data
+ sql """INSERT OVERWRITE TABLE test_iot select * from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with values list
+ sql """INSERT OVERWRITE TABLE test_iot VALUES ('2023-04-20
16:00:00','aaa','aaa'),('2023-04-24 16:00:00','ccc','ccc')"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with origin data
+ sql """INSERT OVERWRITE TABLE test_iot select '2023-04-20
16:00:00','aaa','aaa' """
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with another table
+ sql """ INSERT INTO test_iot1 (test_datetime, test_varchar, test_text)
VALUES ('2023-04-20 16:00:00','aaa','aaa'),('2023-04-24 16:00:00','ccc','ccc')
"""
+ sql """INSERT OVERWRITE TABLE test_iot select * from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite table with some cols
+ sql """INSERT OVERWRITE TABLE test_iot (test_datetime, test_varchar)
select test_datetime, test_varchar from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite with label
+ sql """INSERT OVERWRITE TABLE test_iot WITH LABEL `label1`
(test_datetime, test_varchar, test_text) select * from test_iot1"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite not existed partition
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p3) select * from
test_iot1"""
+ throw new IllegalStateException("Should be not existed partition")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+
+ // overwrite with data which is not in partition's range
+ try {
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) select * from
test_iot1 where test_varchar = 'ccc' """
+ throw new IllegalStateException("Should be wrong data")
+ } catch (java.sql.SQLException t) {
+ assertTrue(true)
+ }
+
+ // overwrite partition with values list
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) VALUES
('2023-04-20 16:00:00','aaa','aaa')"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite partition with origin data
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) select
'2023-04-20 16:00:00','aaa','aaa' """
+ order_qt_select """select * from test_iot"""
+
+ // overwrite partition with another table
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) select * from
test_iot1 where test_varchar = 'aaa' """
+ order_qt_select """ select * from test_iot partition p1 """
+
+ // overwrite tow partitions with another table
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1,p2) select * from
test_iot1"""
+ order_qt_select """ select * from test_iot partition p1 """
+ order_qt_select """ select * from test_iot partition p2 """
+
+ // overwrite partition with some cols
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) (test_datetime,
test_varchar) select test_datetime, test_varchar from test_iot1 where
test_varchar = 'aaa'"""
+ order_qt_select """select * from test_iot"""
+
+ // overwrite partition with label
+ sql """INSERT OVERWRITE TABLE test_iot PARTITION(p1) WITH LABEL
`label2` (test_datetime, test_varchar, test_text) select * from test_iot1 where
test_varchar = 'aaa'"""
+ order_qt_select """select * from test_iot"""
+
+ } finally {
+ sql """ DROP TABLE IF EXISTS test_iot """
+ sql """ DROP TABLE IF EXISTS test_iot1 """
+ sql """ DROP DATABASE IF EXISTS test_iot_db """
+ }
+
+}
+
diff --git a/regression-test/suites/insert_overwrite_p0/large_wide_table.groovy
b/regression-test/suites/insert_overwrite_p0/large_wide_table.groovy
new file mode 100644
index 0000000000..1f5402aa24
--- /dev/null
+++ b/regression-test/suites/insert_overwrite_p0/large_wide_table.groovy
@@ -0,0 +1,30 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_iot_large_wide_table") {
+
+ def tableName = "large_wide_table"
+ try{
+ sql """DROP TABLE IF EXISTS ${tableName}"""
+ sql new File("""${context.file.parent}/ddl/create.sql""").text
+ sql new File("""${context.file.parent}/ddl/insert_overwrite.sql""").text
+ qt_select """ select * from $tableName order by stat_date"""
+ } finally {
+ sql """DROP TABLE IF EXISTS ${tableName}"""
+ }
+}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]