This is an automated email from the ASF dual-hosted git repository.

jermy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git


The following commit(s) were added to refs/heads/master by this push:
     new f2bdedd43 fix cassandra&rocksdb&scylladb code checkstyle (#1847)
f2bdedd43 is described below

commit f2bdedd43fa24a4fa6940037fffc204b85bdb2ba
Author: 青年 <[email protected]>
AuthorDate: Tue May 10 15:58:15 2022 +0800

    fix cassandra&rocksdb&scylladb code checkstyle (#1847)
---
 .../store/cassandra/CassandraSessionPool.java      |  4 +-
 .../backend/store/cassandra/CassandraShard.java    |  4 +-
 .../backend/store/cassandra/CassandraStore.java    | 10 ++--
 .../backend/store/cassandra/CassandraTable.java    | 12 ++---
 .../backend/store/rocksdb/RocksDBMetrics.java      |  4 +-
 .../backend/store/rocksdb/RocksDBOptions.java      |  3 +-
 .../backend/store/rocksdb/RocksDBSessions.java     | 16 +++++-
 .../backend/store/rocksdb/RocksDBStdSessions.java  | 19 +++----
 .../backend/store/rocksdb/RocksDBTables.java       | 16 +++---
 .../store/scylladb/ScyllaDBTablesWithMV.java       | 62 +++++++++++-----------
 10 files changed, 86 insertions(+), 64 deletions(-)

diff --git 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraSessionPool.java
 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraSessionPool.java
index 232fa8549..495eef83b 100644
--- 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraSessionPool.java
+++ 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraSessionPool.java
@@ -213,7 +213,9 @@ public class CassandraSessionPool extends 
BackendSessionPool {
             assert this.session == null;
             try {
                 this.open();
-            } catch (InvalidQueryException ignored) {}
+            } catch (InvalidQueryException ignored) {
+                // ignore
+            }
         }
 
         @Override
diff --git 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraShard.java
 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraShard.java
index 4e3387b99..b0e970b96 100644
--- 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraShard.java
+++ 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraShard.java
@@ -208,8 +208,8 @@ public class CassandraShard {
     private Map<TokenRange, Set<Host>> getRangeMap() {
         Metadata metadata = this.session.metadata();
         return metadata.getTokenRanges().stream().collect(Collectors.toMap(
-                p -> p,
-                p -> metadata.getReplicas('"' + this.keyspace + '"', p)));
+            p -> p,
+            p -> metadata.getReplicas('"' + this.keyspace + '"', p)));
     }
 
     private static Map<TokenRange, Long> describeSplits(
diff --git 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraStore.java
 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraStore.java
index 0f37c92f8..90dcd5af4 100644
--- 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraStore.java
+++ 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraStore.java
@@ -475,12 +475,12 @@ public abstract class CassandraStore
     }
 
     protected boolean existsTable(String table) {
-         KeyspaceMetadata keyspace = this.cluster().getMetadata()
+        KeyspaceMetadata keyspace = this.cluster().getMetadata()
                                          .getKeyspace(this.keyspace);
-         if (keyspace != null && keyspace.getTable(table) != null) {
-             return true;
-         }
-         return false;
+        if (keyspace != null && keyspace.getTable(table) != null) {
+            return true;
+        }
+        return false;
     }
 
     protected void initKeyspace() {
diff --git 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraTable.java
 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraTable.java
index 299f5eea0..548726b4a 100644
--- 
a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraTable.java
+++ 
b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraTable.java
@@ -107,12 +107,12 @@ public abstract class CassandraTable
             statement.setReadTimeoutMillis(timeout * 1000);
             return session.query(statement);
         }, (q, rs) -> {
-            Row row = rs.one();
-            if (row == null) {
-                return IteratorUtils.of(aggregate.defaultValue());
-            }
-            return IteratorUtils.of(row.getLong(0));
-        });
+                Row row = rs.one();
+                if (row == null) {
+                    return IteratorUtils.of(aggregate.defaultValue());
+                }
+                return IteratorUtils.of(row.getLong(0));
+            });
         return aggregate.reduce(results);
     }
 
diff --git 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBMetrics.java
 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBMetrics.java
index 9704f82d2..1a7c0331e 100644
--- 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBMetrics.java
+++ 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBMetrics.java
@@ -198,7 +198,7 @@ public class RocksDBMetrics implements BackendMetrics {
         double total = 0;
         for (RocksDBSessions db : this.dbs) {
             List<String> cfValues = db.property(property);
-            for(String value : cfValues) {
+            for (String value : cfValues) {
                 total += Double.parseDouble(value);
             }
             for (String table : db.openedTables()) {
@@ -212,7 +212,7 @@ public class RocksDBMetrics implements BackendMetrics {
         double total = 0;
         for (RocksDBSessions db : this.dbs) {
             List<String> cfValues = db.property(property);
-            for(String value : cfValues) {
+            for (String value : cfValues) {
                 total += Double.parseDouble(value);
             }
         }
diff --git 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBOptions.java
 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBOptions.java
index 87d4d71a7..f0a4df24e 100644
--- 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBOptions.java
+++ 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBOptions.java
@@ -168,7 +168,8 @@ public class RocksDBOptions extends OptionHolder {
     public static final ConfigOption<Integer> MAX_BG_JOBS =
             new ConfigOption<>(
                     "rocksdb.max_background_jobs",
-                    "Maximum number of concurrent background jobs, including 
flushes and compactions.",
+                    "Maximum number of concurrent background jobs, " +
+                    "including flushes and compactions.",
                     rangeInt(1, Integer.MAX_VALUE),
                     8
             );
diff --git 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBSessions.java
 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBSessions.java
index e146cbf54..2d56a35a0 100644
--- 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBSessions.java
+++ 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBSessions.java
@@ -39,10 +39,13 @@ public abstract class RocksDBSessions extends 
BackendSessionPool {
     public abstract Set<String> openedTables();
 
     public abstract void createTable(String... tables) throws RocksDBException;
+
     public abstract void dropTable(String... tables) throws RocksDBException;
+
     public abstract boolean existsTable(String table);
 
     public abstract List<String> property(String property);
+
     public abstract void compactRange();
 
     public abstract RocksDBSessions copy(HugeConfig config,
@@ -67,7 +70,7 @@ public abstract class RocksDBSessions extends 
BackendSessionPool {
     /**
      * Session for RocksDB
      */
-    public static abstract class Session extends AbstractBackendSession {
+    public abstract static class Session extends AbstractBackendSession {
 
         public static final int SCAN_ANY = 0x80;
         public static final int SCAN_PREFIX_BEGIN = 0x01;
@@ -78,29 +81,40 @@ public abstract class RocksDBSessions extends 
BackendSessionPool {
         public static final int SCAN_LTE_END = 0x30;
 
         public abstract String dataPath();
+
         public abstract String walPath();
 
         public abstract String property(String table, String property);
+
         public abstract Pair<byte[], byte[]> keyRange(String table);
+
         public abstract void compactRange(String table);
 
         public abstract void put(String table, byte[] key, byte[] value);
+
         public abstract void merge(String table, byte[] key, byte[] value);
+
         public abstract void increase(String table, byte[] key, byte[] value);
 
         public abstract void delete(String table, byte[] key);
+
         public abstract void deleteSingle(String table, byte[] key);
+
         public abstract void deletePrefix(String table, byte[] key);
+
         public abstract void deleteRange(String table,
                                          byte[] keyFrom, byte[] keyTo);
 
         public abstract byte[] get(String table, byte[] key);
+
         public abstract BackendColumnIterator get(String table,
                                                   List<byte[]> keys);
 
         public abstract BackendColumnIterator scan(String table);
+
         public abstract BackendColumnIterator scan(String table,
                                                    byte[] prefix);
+
         public abstract BackendColumnIterator scan(String table,
                                                    byte[] keyFrom,
                                                    byte[] keyTo,
diff --git 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java
 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java
index e745bb3d4..75766e5da 100644
--- 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java
+++ 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java
@@ -236,7 +236,7 @@ public class RocksDBStdSessions extends RocksDBSessions {
                 }
             }
             return values;
-        } catch(RocksDBException | UnsupportedOperationException e) {
+        } catch (RocksDBException | UnsupportedOperationException e) {
             throw new BackendException(e);
         }
     }
@@ -728,7 +728,8 @@ public class RocksDBStdSessions extends RocksDBSessions {
 
         @Override
         public Pair<byte[], byte[]> keyRange(String table) {
-            byte[] startKey, endKey;
+            byte[] startKey;
+            byte[] endKey;
             try (CFHandle cf = cf(table);
                  RocksIterator iter = rocksdb().newIterator(cf.get())) {
                 iter.seekToFirst();
@@ -1058,14 +1059,14 @@ public class RocksDBStdSessions extends RocksDBSessions 
{
         @SuppressWarnings("unused")
         private void dump() {
             this.seek();
-            System.out.println(">>>> scan from " + this.table + ": "  +
-                               (this.keyBegin == null ? "*" :
-                                StringEncoding.format(this.keyBegin)) +
-                               (this.iter.isValid() ? "" : " - No data"));
+            LOG.info(">>>> scan from {}: {}{}", 
+                      this.table,
+                      this.keyBegin == null ? "*" : 
StringEncoding.format(this.keyBegin),
+                      this.iter.isValid() ? "" : " - No data");
             for (; this.iter.isValid(); this.iter.next()) {
-                System.out.println(String.format("%s=%s",
-                                   StringEncoding.format(this.iter.key()),
-                                   StringEncoding.format(this.iter.value())));
+                LOG.info("{}={}",
+                          StringEncoding.format(this.iter.key()),
+                          StringEncoding.format(this.iter.value()));
             }
         }
 
diff --git 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBTables.java
 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBTables.java
index a97762978..38e981e37 100644
--- 
a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBTables.java
+++ 
b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBTables.java
@@ -50,7 +50,7 @@ public class RocksDBTables {
             byte[] key = new byte[]{type.code()};
             byte[] value = session.get(this.table(), key);
             if (value != null) {
-                return l(value);
+                return toLong(value);
             } else {
                 return 0L;
             }
@@ -59,16 +59,16 @@ public class RocksDBTables {
         public void increaseCounter(Session session, HugeType type,
                                     long increment) {
             byte[] key = new byte[]{type.code()};
-            session.increase(this.table(), key, b(increment));
+            session.increase(this.table(), key, toBytes(increment));
         }
 
-        private static byte[] b(long value) {
+        private static byte[] toBytes(long value) {
             return ByteBuffer.allocate(Long.BYTES)
                              .order(ByteOrder.nativeOrder())
                              .putLong(value).array();
         }
 
-        private static long l(byte[] bytes) {
+        private static long toLong(byte[] bytes) {
             assert bytes.length == Long.BYTES;
             return ByteBuffer.wrap(bytes)
                              .order(ByteOrder.nativeOrder())
@@ -282,11 +282,15 @@ public class RocksDBTables {
                         break;
                     case GTE:
                         minEq = true;
+                        min = (Id) r.value();
+                        break;
                     case GT:
                         min = (Id) r.value();
                         break;
                     case LTE:
                         maxEq = true;
+                        max = (Id) r.value();
+                        break;
                     case LT:
                         max = (Id) r.value();
                         break;
@@ -323,7 +327,7 @@ public class RocksDBTables {
         }
     }
 
-    public static class RangeFloatIndex extends RangeIndex{
+    public static class RangeFloatIndex extends RangeIndex {
 
         public static final String TABLE = HugeType.RANGE_FLOAT_INDEX.string();
 
@@ -341,7 +345,7 @@ public class RocksDBTables {
         }
     }
 
-    public static class RangeDoubleIndex extends RangeIndex{
+    public static class RangeDoubleIndex extends RangeIndex {
 
         public static final String TABLE = 
HugeType.RANGE_DOUBLE_INDEX.string();
 
diff --git 
a/hugegraph-scylladb/src/main/java/com/baidu/hugegraph/backend/store/scylladb/ScyllaDBTablesWithMV.java
 
b/hugegraph-scylladb/src/main/java/com/baidu/hugegraph/backend/store/scylladb/ScyllaDBTablesWithMV.java
index f203c6e57..2a771c14c 100644
--- 
a/hugegraph-scylladb/src/main/java/com/baidu/hugegraph/backend/store/scylladb/ScyllaDBTablesWithMV.java
+++ 
b/hugegraph-scylladb/src/main/java/com/baidu/hugegraph/backend/store/scylladb/ScyllaDBTablesWithMV.java
@@ -87,18 +87,18 @@ public class ScyllaDBTablesWithMV {
 
     public static class PropertyKey extends CassandraTables.PropertyKey {
 
-        private final String MV_NAME2PK = mvNameTable(this.table());
+        private final String mvName2Pk = mvNameTable(this.table());
 
         @Override
         protected void createIndex(CassandraSessionPool.Session session,
                                    String indexLabel,
                                    HugeKeys column) {
-            createSchemaIndexTable(session, MV_NAME2PK, this.table());
+            createSchemaIndexTable(session, mvName2Pk, this.table());
         }
 
         @Override
         protected void dropTable(CassandraSessionPool.Session session) {
-            dropIndexTable(session, MV_NAME2PK);
+            dropIndexTable(session, mvName2Pk);
             super.dropTable(session);
         }
 
@@ -106,7 +106,7 @@ public class ScyllaDBTablesWithMV {
         protected List<Select> query2Select(String table, Query query) {
             if (isQueryByName(query)) {
                 // Query from materialized view
-                return super.query2Select(MV_NAME2PK, query);
+                return super.query2Select(mvName2Pk, query);
             }
             return super.query2Select(table, query);
         }
@@ -114,18 +114,18 @@ public class ScyllaDBTablesWithMV {
 
     public static class VertexLabel extends CassandraTables.VertexLabel {
 
-        private final String MV_NAME2VL = mvNameTable(this.table());
+        private final String mvName2Vl = mvNameTable(this.table());
 
         @Override
         protected void createIndex(CassandraSessionPool.Session session,
                                    String indexLabel,
                                    HugeKeys column) {
-            createSchemaIndexTable(session, MV_NAME2VL, this.table());
+            createSchemaIndexTable(session, mvName2Vl, this.table());
         }
 
         @Override
         protected void dropTable(CassandraSessionPool.Session session) {
-            dropIndexTable(session, MV_NAME2VL);
+            dropIndexTable(session, mvName2Vl);
             super.dropTable(session);
         }
 
@@ -133,7 +133,7 @@ public class ScyllaDBTablesWithMV {
         protected List<Select> query2Select(String table, Query query) {
             if (isQueryByName(query)) {
                 // Query from materialized view
-                return super.query2Select(MV_NAME2VL, query);
+                return super.query2Select(mvName2Vl, query);
             }
             return super.query2Select(table, query);
         }
@@ -141,18 +141,18 @@ public class ScyllaDBTablesWithMV {
 
     public static class EdgeLabel extends CassandraTables.EdgeLabel {
 
-        private final String MV_NAME2EL = mvNameTable(this.table());
+        private final String mvName2El = mvNameTable(this.table());
 
         @Override
         protected void createIndex(CassandraSessionPool.Session session,
                                    String indexLabel,
                                    HugeKeys column) {
-            createSchemaIndexTable(session, MV_NAME2EL, this.table());
+            createSchemaIndexTable(session, mvName2El, this.table());
         }
 
         @Override
         protected void dropTable(CassandraSessionPool.Session session) {
-            dropIndexTable(session, MV_NAME2EL);
+            dropIndexTable(session, mvName2El);
             super.dropTable(session);
         }
 
@@ -160,7 +160,7 @@ public class ScyllaDBTablesWithMV {
         protected List<Select> query2Select(String table, Query query) {
             if (isQueryByName(query)) {
                 // Query from materialized view
-                return super.query2Select(MV_NAME2EL, query);
+                return super.query2Select(mvName2El, query);
             }
             return super.query2Select(table, query);
         }
@@ -168,18 +168,18 @@ public class ScyllaDBTablesWithMV {
 
     public static class IndexLabel extends CassandraTables.IndexLabel {
 
-        private final String MV_NAME2IL = mvNameTable(this.table());
+        private final String mvName2Il = mvNameTable(this.table());
 
         @Override
         protected void createIndex(CassandraSessionPool.Session session,
                                    String indexLabel,
                                    HugeKeys column) {
-            createSchemaIndexTable(session, MV_NAME2IL, this.table());
+            createSchemaIndexTable(session, mvName2Il, this.table());
         }
 
         @Override
         protected void dropTable(CassandraSessionPool.Session session) {
-            dropIndexTable(session, MV_NAME2IL);
+            dropIndexTable(session, mvName2Il);
             super.dropTable(session);
         }
 
@@ -187,7 +187,7 @@ public class ScyllaDBTablesWithMV {
         protected List<Select> query2Select(String table, Query query) {
             if (isQueryByName(query)) {
                 // Query from materialized view
-                return super.query2Select(MV_NAME2IL, query);
+                return super.query2Select(mvName2Il, query);
             }
             return super.query2Select(table, query);
         }
@@ -195,7 +195,7 @@ public class ScyllaDBTablesWithMV {
 
     public static class Vertex extends CassandraTables.Vertex {
 
-        private final String MV_LABEL2VERTEX = mvLabelTable(this.table());
+        private final String mvLabel2Vertex = mvLabelTable(this.table());
 
         public Vertex(String store) {
             super(store);
@@ -212,13 +212,13 @@ public class ScyllaDBTablesWithMV {
                          "  SELECT * FROM %s " +
                          "  WHERE %s IS NOT NULL " +
                          "  PRIMARY KEY(%s, %s)",
-                         MV_LABEL2VERTEX, this.table(), LABEL, LABEL, ID);
+                         mvLabel2Vertex, this.table(), LABEL, LABEL, ID);
             session.execute(cql);
         }
 
         @Override
         protected void dropTable(CassandraSessionPool.Session session) {
-            dropIndexTable(session, MV_LABEL2VERTEX);
+            dropIndexTable(session, mvLabel2Vertex);
             super.dropTable(session);
         }
 
@@ -230,7 +230,7 @@ public class ScyllaDBTablesWithMV {
         protected List<Select> query2Select(String table, Query query) {
             if (isQueryByLabel(query)) {
                 // Query from materialized view
-                return super.query2Select(MV_LABEL2VERTEX, query);
+                return super.query2Select(mvLabel2Vertex, query);
             }
             return super.query2Select(table, query);
         }
@@ -238,16 +238,16 @@ public class ScyllaDBTablesWithMV {
 
     public static class Edge extends CassandraTables.Edge {
 
-        private final String MV_LABEL2EDGE = mvLabelTable(this.table());
+        private final String mvLabel2Edge = mvLabelTable(this.table());
 
-        private final String LABEL = CassandraTable.formatKey(HugeKeys.LABEL);
-        private final List<String> KEYS = this.idColumnName().stream()
+        private static final String LABEL = 
CassandraTable.formatKey(HugeKeys.LABEL);
+        private final List<String> keys = this.idColumnName().stream()
                                           .filter(k -> k != HugeKeys.LABEL)
                                           .map(k -> 
CassandraTable.formatKey(k))
                                           .collect(Collectors.toList());
-        private final String PRKEYS = this.KEYS.stream()
+        private final String prKeys = this.keys.stream()
                                       .collect(Collectors.joining(","));
-        private final String PRKEYS_NN = this.KEYS.stream().collect(
+        private final String prkeysNn = this.keys.stream().collect(
                              Collectors.joining(" IS NOT NULL AND "));
 
         public Edge(String store, Directions direction) {
@@ -263,15 +263,15 @@ public class ScyllaDBTablesWithMV {
                          "  SELECT * FROM %s " +
                          "  WHERE %s IS NOT NULL AND %s IS NOT NULL " +
                          "  PRIMARY KEY(%s, %s)",
-                         MV_LABEL2EDGE, this.table(),
-                         this.LABEL, this.PRKEYS_NN,
-                         this.LABEL, this.PRKEYS);
+                         mvLabel2Edge, this.table(),
+                         this.LABEL, this.prkeysNn,
+                         this.LABEL, this.prKeys);
             session.execute(cql);
         }
 
         @Override
         protected void dropTable(CassandraSessionPool.Session session) {
-            dropIndexTable(session, MV_LABEL2EDGE);
+            dropIndexTable(session, mvLabel2Edge);
             super.dropTable(session);
         }
 
@@ -282,14 +282,14 @@ public class ScyllaDBTablesWithMV {
         protected List<Select> query2Select(String table, Query query) {
             if (isQueryByLabel(query)) {
                 // Query from materialized view
-                return super.query2Select(MV_LABEL2EDGE, query);
+                return super.query2Select(mvLabel2Edge, query);
             }
             return super.query2Select(table, query);
         }
 
         @Override
         protected String labelIndexTable() {
-            return MV_LABEL2EDGE;
+            return mvLabel2Edge;
         }
 
         public static Edge out(String store) {

Reply via email to