mirror of
https://github.com/google/nomulus
synced 2026-05-25 09:10:51 +00:00
Compare commits
25 Commits
nomulus-20
...
nomulus-20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75851399ba | ||
|
|
6d54c8d113 | ||
|
|
34dfa2760e | ||
|
|
ff39a4a763 | ||
|
|
b1cd8c5a6f | ||
|
|
28c7bc3085 | ||
|
|
f36d22f4b1 | ||
|
|
ef3ce79b8a | ||
|
|
85317e3982 | ||
|
|
a53b71ecd5 | ||
|
|
fc9446876f | ||
|
|
654b165dff | ||
|
|
14d68d4cb2 | ||
|
|
bbf405d566 | ||
|
|
356f7d0099 | ||
|
|
70509cfe46 | ||
|
|
5e081f4692 | ||
|
|
07b87bbb4d | ||
|
|
6fabbb62d2 | ||
|
|
d8a882daa0 | ||
|
|
de8c6fd316 | ||
|
|
ae68917bdd | ||
|
|
0736137a22 | ||
|
|
c4b7929506 | ||
|
|
e6974a98bc |
@@ -10,25 +10,25 @@ com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,testAnnotationP
|
||||
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,testAnnotationProcessor
|
||||
com.google.android:annotations:4.1.1.4=testRuntimeClasspath
|
||||
com.google.api-client:google-api-client:2.1.2=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:gapic-google-cloud-storage-v2:2.17.0-alpha=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-storage-v2:2.17.0-alpha=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-storage-v2:2.17.0-alpha=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-common-protos:2.12.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-iam-v1:1.7.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:api-common:2.4.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-grpc:2.21.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-httpjson:0.106.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax:2.21.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:gapic-google-cloud-storage-v2:2.17.2-alpha=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-storage-v2:2.17.2-alpha=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-storage-v2:2.17.2-alpha=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-common-protos:2.13.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-iam-v1:1.8.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:api-common:2.5.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-grpc:2.22.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-httpjson:0.107.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax:2.22.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-storage:v1-rev20220705-2.0.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.auth:google-auth-library-credentials:1.14.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.auth:google-auth-library-oauth2-http:1.14.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.auto.value:auto-value-annotations:1.10.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.auto.value:auto-value:1.10.1=annotationProcessor,compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.auto:auto-common:0.10=annotationProcessor,testAnnotationProcessor
|
||||
com.google.cloud:google-cloud-core-grpc:2.9.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-http:2.9.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core:2.9.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-storage:2.17.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-grpc:2.9.4=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-http:2.9.4=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core:2.9.4=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-storage:2.17.2=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,testAnnotationProcessor
|
||||
com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.code.gson:gson:2.10.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
@@ -71,19 +71,19 @@ commons-codec:commons-codec:1.15=compileClasspath,testCompileClasspath,testRunti
|
||||
commons-collections:commons-collections:3.2.2=checkstyle
|
||||
commons-logging:commons-logging:1.2=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
info.picocli:picocli:4.5.2=checkstyle
|
||||
io.grpc:grpc-alts:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-api:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-auth:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-context:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-core:1.51.1=testRuntimeClasspath
|
||||
io.grpc:grpc-googleapis:1.51.1=testRuntimeClasspath
|
||||
io.grpc:grpc-grpclb:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-netty-shaded:1.51.1=testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf-lite:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-services:1.51.1=testRuntimeClasspath
|
||||
io.grpc:grpc-stub:1.51.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-xds:1.51.1=testRuntimeClasspath
|
||||
io.grpc:grpc-alts:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-api:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-auth:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-context:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-core:1.52.1=testRuntimeClasspath
|
||||
io.grpc:grpc-googleapis:1.52.1=testRuntimeClasspath
|
||||
io.grpc:grpc-grpclb:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-netty-shaded:1.52.1=testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf-lite:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-services:1.52.1=testRuntimeClasspath
|
||||
io.grpc:grpc-stub:1.52.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-xds:1.52.1=testRuntimeClasspath
|
||||
io.opencensus:opencensus-api:0.31.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.opencensus:opencensus-contrib-http-util:0.31.1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.opencensus:opencensus-proto:0.2.0=testRuntimeClasspath
|
||||
@@ -92,8 +92,8 @@ javax.annotation:javax.annotation-api:1.3.2=compileClasspath,testCompileClasspat
|
||||
javax.annotation:jsr250-api:1.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
javax.inject:javax.inject:1=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy-agent:1.12.19=testCompileClasspath,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy:1.12.19=testCompileClasspath,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy-agent:1.12.22=testCompileClasspath,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy:1.12.22=testCompileClasspath,testRuntimeClasspath
|
||||
net.sf.saxon:Saxon-HE:10.3=checkstyle
|
||||
org.antlr:antlr4-runtime:4.8-1=checkstyle
|
||||
org.apache.commons:commons-lang3:3.12.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
@@ -110,10 +110,10 @@ org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,testAnnota
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.22=testRuntimeClasspath
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.jacoco:org.jacoco.agent:0.8.6=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.agent:0.8.7=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.7=jacocoAnt
|
||||
org.javassist:javassist:3.26.0-GA=checkstyle
|
||||
org.json:json:20160212=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-api:5.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
@@ -121,19 +121,18 @@ org.junit.jupiter:junit-jupiter-engine:5.9.2=testCompileClasspath,testRuntimeCla
|
||||
org.junit.platform:junit-platform-commons:1.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-engine:1.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit:junit-bom:5.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.mockito:mockito-core:4.11.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.mockito:mockito-core:5.0.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.objenesis:objenesis:3.3=testRuntimeClasspath
|
||||
org.opentest4j:opentest4j:1.2.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-analysis:7.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-analysis:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-analysis:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:7.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-commons:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:7.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-tree:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-util:7.0=compileClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm:7.0=compileClasspath
|
||||
org.ow2.asm:asm:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm:9.1=testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm:9.1=jacocoAnt,testCompileClasspath,testRuntimeClasspath
|
||||
org.pcollections:pcollections:2.1.2=annotationProcessor,testAnnotationProcessor
|
||||
org.plumelib:plume-util:1.0.6=annotationProcessor,testAnnotationProcessor
|
||||
org.plumelib:reflection-util:0.0.2=annotationProcessor,testAnnotationProcessor
|
||||
|
||||
@@ -17,7 +17,6 @@ package google.registry.gradle.plugin;
|
||||
import com.google.auto.value.AutoValue;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import google.registry.gradle.plugin.ProjectData.TaskData;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@@ -38,6 +38,7 @@ configurations {
|
||||
|
||||
// All testing util classes. Other projects may declare dependency as:
|
||||
// testImplementation project(path: 'common', configuration: 'testing')
|
||||
create("testing")
|
||||
testing.extendsFrom testingCompileOnly
|
||||
}
|
||||
|
||||
|
||||
@@ -45,10 +45,10 @@ org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotatio
|
||||
org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
|
||||
org.hamcrest:hamcrest-core:1.3=default,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath
|
||||
org.jacoco:org.jacoco.agent:0.8.6=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.agent:0.8.7=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.7=jacocoAnt
|
||||
org.javassist:javassist:3.26.0-GA=checkstyle
|
||||
org.junit.jupiter:junit-jupiter-api:5.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-engine:5.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
@@ -56,11 +56,10 @@ org.junit.platform:junit-platform-commons:1.9.2=testCompileClasspath,testRuntime
|
||||
org.junit.platform:junit-platform-engine:1.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit:junit-bom:5.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.opentest4j:opentest4j:1.2.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-analysis:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm:9.1=compileClasspath,default,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath
|
||||
org.ow2.asm:asm-analysis:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:9.1=jacocoAnt
|
||||
org.ow2.asm:asm:9.1=compileClasspath,default,deploy_jar,jacocoAnt,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath
|
||||
org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
|
||||
org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
|
||||
org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor
|
||||
|
||||
@@ -270,6 +270,10 @@
|
||||
"moduleLicense": "Public Domain",
|
||||
"moduleName": "org.tukaani:xz"
|
||||
},
|
||||
{
|
||||
"moduleLicense": "Public Domain",
|
||||
"moduleName": "org.json:json"
|
||||
},
|
||||
{
|
||||
// "Apache License, Version 2.0".
|
||||
"moduleLicense": null,
|
||||
|
||||
@@ -31,15 +31,15 @@ org.checkerframework:checker-qual:3.0.0=annotationProcessor,errorprone,testAnnot
|
||||
org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor
|
||||
org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,errorprone,testAnnotationProcessor
|
||||
org.jacoco:org.jacoco.agent:0.8.6=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.agent:0.8.7=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.7=jacocoAnt
|
||||
org.javassist:javassist:3.26.0-GA=checkstyle
|
||||
org.ow2.asm:asm-analysis:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-analysis:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:9.1=jacocoAnt
|
||||
org.ow2.asm:asm:9.1=jacocoAnt
|
||||
org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor
|
||||
org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor
|
||||
org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor
|
||||
|
||||
24
console-webapp/package-lock.json
generated
24
console-webapp/package-lock.json
generated
@@ -6824,9 +6824,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/http-cache-semantics": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
||||
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
|
||||
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/http-deceiver": {
|
||||
@@ -11362,9 +11362,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ua-parser-js": {
|
||||
"version": "0.7.31",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
|
||||
"integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
|
||||
"version": "0.7.33",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
|
||||
"integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -17202,9 +17202,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"http-cache-semantics": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
||||
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
|
||||
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"http-deceiver": {
|
||||
@@ -20623,9 +20623,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"ua-parser-js": {
|
||||
"version": "0.7.31",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
|
||||
"integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
|
||||
"version": "0.7.33",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
|
||||
"integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==",
|
||||
"dev": true
|
||||
},
|
||||
"unicode-canonical-property-names-ecmascript": {
|
||||
|
||||
@@ -37,49 +37,45 @@ com.google.api-client:google-api-client-jackson2:1.32.2=compileClasspath,default
|
||||
com.google.api-client:google-api-client-java6:1.35.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api-client:google-api-client-servlet:1.35.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api-client:google-api-client:1.35.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:gapic-google-cloud-storage-v2:2.16.0-alpha=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:gapic-google-cloud-storage-v2:2.17.0-alpha=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.23.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.147.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.147.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:gapic-google-cloud-storage-v2:2.17.2-alpha=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.25.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.149.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.149.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.27.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.14.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.102.20=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.7.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.31.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.31.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.31.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-storage-v2:2.16.0-alpha=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-storage-v2:2.17.0-alpha=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.api.grpc:grpc-google-common-protos:2.9.6=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-iam-v1:1.6.22=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.23.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.147.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.147.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.14.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.14.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-datastore-v1:0.102.5=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-firestore-v1:3.6.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.16.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.103.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.33.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.33.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-spanner-v1:6.33.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-cloud-storage-v2:2.17.2-alpha=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:grpc-google-common-protos:2.10.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.25.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.149.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.149.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.16.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-bigtable-v2:2.16.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-datastore-v1:0.103.5=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-firestore-v1:3.7.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-monitoring-v3:1.64.0=compileClasspath,nonprodCompileClasspath,testCompileClasspath
|
||||
com.google.api.grpc:proto-google-cloud-monitoring-v3:3.4.6=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.102.20=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.7.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.8.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.8.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.31.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.31.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-spanner-v1:6.31.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-storage-v2:2.16.0-alpha=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-storage-v2:2.17.0-alpha=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:2.8.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.98.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.98.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-common-protos:2.12.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-iam-v1:1.7.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:api-common:2.4.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-grpc:2.21.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-httpjson:0.106.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax:2.21.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-monitoring-v3:3.6.0=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-pubsub-v1:1.103.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.33.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.33.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-spanner-v1:6.33.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-storage-v2:2.17.2-alpha=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:2.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.99.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.99.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-common-protos:2.13.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api.grpc:proto-google-iam-v1:1.8.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:api-common:2.5.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-grpc:2.22.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax-httpjson:0.107.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.api:gax:2.22.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-appengine:v1-rev20230109-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-bigquery:v2-rev20220924-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
@@ -91,10 +87,10 @@ com.google.apis:google-api-services-drive:v2-rev393-1.25.0=compileClasspath,defa
|
||||
com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-healthcare:v1-rev20220818-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-iamcredentials:v1-rev20210326-1.32.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-monitoring:v3-rev20221205-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-monitoring:v3-rev20230123-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-pubsub:v1-rev20220904-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-sheets:v4-rev20221216-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-sqladmin:v1beta4-rev20221209-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-sqladmin:v1beta4-rev20230111-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.apis:google-api-services-storage:v1-rev20220705-2.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.appengine:appengine-api-1.0-sdk:1.9.86=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.appengine:appengine-api-1.0-sdk:2.0.10=testCompileClasspath,testRuntimeClasspath
|
||||
@@ -114,30 +110,26 @@ com.google.cloud.bigdataoss:util:2.2.6=compileClasspath,default,deploy_jar,nonpr
|
||||
com.google.cloud.bigtable:bigtable-client-core:1.26.3=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud.bigtable:bigtable-metrics-api:1.26.3=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud.datastore:datastore-v1-proto-client:2.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud.sql:jdbc-socket-factory-core:1.8.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud.sql:postgres-socket-factory:1.8.1=default,deploy_jar,runtimeClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-bigquerystorage:2.23.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-bigtable-stats:2.14.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-bigtable:2.14.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-grpc:2.9.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-grpc:2.9.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.cloud:google-cloud-core-http:2.9.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-http:2.9.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.cloud:google-cloud-core:2.9.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core:2.9.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.cloud:google-cloud-firestore:3.6.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud.sql:jdbc-socket-factory-core:1.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud.sql:postgres-socket-factory:1.9.0=default,deploy_jar,runtimeClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-bigquerystorage:2.25.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-bigtable-stats:2.16.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-bigtable:2.16.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-grpc:2.9.4=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core-http:2.9.4=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-core:2.9.4=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-firestore:3.7.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-monitoring:1.82.0=compileClasspath,nonprodCompileClasspath,testCompileClasspath
|
||||
com.google.cloud:google-cloud-monitoring:3.4.6=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-nio:0.126.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-pubsub:1.120.20=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-pubsublite:1.7.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-secretmanager:2.8.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-spanner:6.31.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-storage:2.16.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-storage:2.17.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
com.google.cloud:google-cloud-tasks:2.8.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:grpc-gcp:1.2.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.6.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-monitoring:3.6.0=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-nio:0.126.3=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-pubsub:1.121.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-pubsublite:1.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-secretmanager:2.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-spanner:6.33.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-storage:2.17.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:google-cloud-tasks:2.9.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:grpc-gcp:1.3.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.7.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor
|
||||
com.google.code.findbugs:jsr305:3.0.1=css
|
||||
com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,default,deploy_jar,errorprone,nonprodAnnotationProcessor,nonprodCompileClasspath,nonprodRuntime,nonprodRuntimeClasspath,runtime,runtimeClasspath,soy,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
|
||||
@@ -248,37 +240,37 @@ io.confluent:kafka-schema-registry-client:5.3.2=compileClasspath,default,deploy_
|
||||
io.dropwizard.metrics:metrics-core:3.1.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.github.classgraph:classgraph:4.8.104=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.github.java-diff-utils:java-diff-utils:4.12=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-alts:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-api:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-auth:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-census:1.49.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-context:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-core:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-googleapis:1.51.1=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-grpclb:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-netty-shaded:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-netty:1.49.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf-lite:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-rls:1.49.2=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-services:1.49.2=compileClasspath,nonprodCompileClasspath,testCompileClasspath
|
||||
io.grpc:grpc-services:1.51.1=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-stub:1.51.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-xds:1.49.2=compileClasspath,nonprodCompileClasspath,testCompileClasspath
|
||||
io.grpc:grpc-xds:1.51.1=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.netty:netty-buffer:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec-http2:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec-http:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec-socks:4.1.77.Final=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-common:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-handler-proxy:4.1.77.Final=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.netty:netty-handler:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-resolver:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-alts:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-api:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-auth:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-census:1.50.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-context:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-core:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-googleapis:1.52.1=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-grpclb:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-netty-shaded:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-netty:1.50.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf-lite:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-protobuf:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-rls:1.50.2=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-services:1.50.2=compileClasspath,nonprodCompileClasspath,testCompileClasspath
|
||||
io.grpc:grpc-services:1.52.1=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-stub:1.52.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.grpc:grpc-xds:1.50.2=compileClasspath,nonprodCompileClasspath,testCompileClasspath
|
||||
io.grpc:grpc-xds:1.52.1=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.netty:netty-buffer:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec-http2:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec-http:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec-socks:4.1.79.Final=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.netty:netty-codec:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-common:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-handler-proxy:4.1.79.Final=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.netty:netty-handler:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-resolver:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-tcnative-boringssl-static:2.0.52.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-tcnative-classes:2.0.52.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-transport-native-unix-common:4.1.77.Final=default,deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
io.netty:netty-transport:4.1.77.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-transport-native-unix-common:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.netty:netty-transport:4.1.79.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.opencensus:opencensus-api:0.31.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.opencensus:opencensus-contrib-exemplar-util:0.31.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
io.opencensus:opencensus-contrib-grpc-metrics:0.31.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
@@ -310,9 +302,9 @@ jline:jline:1.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonp
|
||||
joda-time:joda-time:2.10.10=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
junit:junit:4.13.2=default,nonprodCompileClasspath,nonprodRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
net.arnx:nashorn-promise:0.1.1=nonprodRuntime,runtime,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy-agent:1.12.19=testCompileClasspath,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy-agent:1.12.22=testCompileClasspath,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy:1.12.18=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath
|
||||
net.bytebuddy:byte-buddy:1.12.19=testCompileClasspath,testRuntimeClasspath
|
||||
net.bytebuddy:byte-buddy:1.12.22=testCompileClasspath,testRuntimeClasspath
|
||||
net.java.dev.javacc:javacc:4.1=css
|
||||
net.java.dev.jna:jna:5.8.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
net.ltgt.gradle.incap:incap:0.2=annotationProcessor,testAnnotationProcessor
|
||||
@@ -322,22 +314,22 @@ org.apache.arrow:arrow-format:5.0.0=compileClasspath,default,deploy_jar,nonprodC
|
||||
org.apache.arrow:arrow-memory-core:5.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.arrow:arrow-vector:5.0.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.avro:avro:1.8.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-model-fn-execution:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-model-job-management:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-model-pipeline:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-core-construction-java:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-core-java:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-direct-java:2.43.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-java-fn-execution:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-core:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-expansion-service:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-extensions-arrow:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-extensions-protobuf:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-fn-execution:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-io-kafka:2.43.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-model-fn-execution:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-model-job-management:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-model-pipeline:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-core-construction-java:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-core-java:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-direct-java:2.44.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-google-cloud-dataflow-java:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-runners-java-fn-execution:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-core:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-expansion-service:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-extensions-arrow:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-extensions-protobuf:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-fn-execution:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-sdks-java-io-kafka:2.44.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-vendor-grpc-1_48_1:0.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.beam:beam-vendor-guava-26_0-jre:0.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.commons:commons-compress:1.22=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
@@ -381,7 +373,7 @@ org.eclipse.jetty:jetty-server:9.4.49.v20220914=compileClasspath,default,deploy_
|
||||
org.eclipse.jetty:jetty-servlet:9.4.49.v20220914=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-util-ajax:9.4.49.v20220914=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-util:9.4.49.v20220914=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.flywaydb:flyway-core:9.11.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.flywaydb:flyway-core:9.12.0=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.glassfish.jaxb:jaxb-core:4.0.1=nonprodRuntime,runtime
|
||||
org.glassfish.jaxb:jaxb-runtime:2.3.1=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.glassfish.jaxb:jaxb-runtime:4.0.1=nonprodRuntime,runtime
|
||||
@@ -397,10 +389,10 @@ org.hamcrest:hamcrest:2.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.hibernate.common:hibernate-commons-annotations:5.1.2.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.hibernate:hibernate-core:5.6.14.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.hibernate:hibernate-hikaricp:5.6.14.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jacoco:org.jacoco.agent:0.8.6=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.6=jacocoAnt
|
||||
org.jacoco:org.jacoco.agent:0.8.7=jacocoAgent,jacocoAnt
|
||||
org.jacoco:org.jacoco.ant:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.core:0.8.7=jacocoAnt
|
||||
org.jacoco:org.jacoco.report:0.8.7=jacocoAnt
|
||||
org.javassist:javassist:3.26.0-GA=checkstyle
|
||||
org.jboss.logging:jboss-logging:3.4.3.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
@@ -431,26 +423,26 @@ org.junit.platform:junit-platform-suite-commons:1.9.2=testRuntimeClasspath
|
||||
org.junit:junit-bom:5.9.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.jvnet.staxex:stax-ex:1.8=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.mockito:mockito-core:1.10.19=css
|
||||
org.mockito:mockito-core:4.11.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.mockito:mockito-junit-jupiter:4.11.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.mockito:mockito-core:5.0.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.mockito:mockito-junit-jupiter:5.0.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.mortbay.jetty:jetty-util:6.1.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.mortbay.jetty:jetty:6.1.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.objenesis:objenesis:2.1=css
|
||||
org.objenesis:objenesis:3.3=testRuntimeClasspath
|
||||
org.opentest4j:opentest4j:1.2.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-analysis:7.0=soy
|
||||
org.ow2.asm:asm-analysis:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-analysis:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-analysis:9.4=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-commons:7.0=soy
|
||||
org.ow2.asm:asm-commons:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-commons:9.2=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-tree:7.0=soy
|
||||
org.ow2.asm:asm-tree:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:9.1=jacocoAnt
|
||||
org.ow2.asm:asm-tree:9.4=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm-util:7.0=soy
|
||||
org.ow2.asm:asm-util:9.4=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.ow2.asm:asm:7.0=soy
|
||||
org.ow2.asm:asm:8.0.1=jacocoAnt
|
||||
org.ow2.asm:asm:9.1=jacocoAnt
|
||||
org.ow2.asm:asm:9.4=compileClasspath,default,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor
|
||||
org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor
|
||||
|
||||
@@ -105,10 +105,22 @@ public class BatchModule {
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Parameter(ExpandRecurringBillingEventsAction.PARAM_CURSOR_TIME)
|
||||
static Optional<DateTime> provideCursorTime(HttpServletRequest req) {
|
||||
@Parameter(ExpandRecurringBillingEventsAction.PARAM_START_TIME)
|
||||
static Optional<DateTime> provideStartTime(HttpServletRequest req) {
|
||||
return extractOptionalDatetimeParameter(
|
||||
req, ExpandRecurringBillingEventsAction.PARAM_CURSOR_TIME);
|
||||
req, ExpandRecurringBillingEventsAction.PARAM_START_TIME);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Parameter(ExpandRecurringBillingEventsAction.PARAM_END_TIME)
|
||||
static Optional<DateTime> provideEndTime(HttpServletRequest req) {
|
||||
return extractOptionalDatetimeParameter(req, ExpandRecurringBillingEventsAction.PARAM_END_TIME);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Parameter(ExpandRecurringBillingEventsAction.PARAM_ADVANCE_CURSOR)
|
||||
static boolean provideAdvanceCursor(HttpServletRequest req) {
|
||||
return extractBooleanParameter(req, ExpandRecurringBillingEventsAction.PARAM_ADVANCE_CURSOR);
|
||||
}
|
||||
|
||||
@Provides
|
||||
|
||||
@@ -15,58 +15,39 @@
|
||||
package google.registry.batch;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.collect.ImmutableSet.toImmutableSet;
|
||||
import static com.google.common.collect.Sets.difference;
|
||||
import static com.google.common.collect.Sets.newHashSet;
|
||||
import static google.registry.batch.BatchModule.PARAM_DRY_RUN;
|
||||
import static google.registry.beam.BeamUtils.createJobName;
|
||||
import static google.registry.model.common.Cursor.CursorType.RECURRING_BILLING;
|
||||
import static google.registry.model.domain.Period.Unit.YEARS;
|
||||
import static google.registry.model.reporting.HistoryEntry.Type.DOMAIN_AUTORENEW;
|
||||
import static google.registry.persistence.transaction.QueryComposer.Comparator.EQ;
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
import static google.registry.util.CollectionUtils.union;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static google.registry.util.DateTimeUtils.earliestOf;
|
||||
import static google.registry.util.DomainNameUtils.getTldFromDomainName;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_OK;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Range;
|
||||
import com.google.common.collect.Streams;
|
||||
import com.google.api.services.dataflow.Dataflow;
|
||||
import com.google.api.services.dataflow.model.LaunchFlexTemplateParameter;
|
||||
import com.google.api.services.dataflow.model.LaunchFlexTemplateRequest;
|
||||
import com.google.api.services.dataflow.model.LaunchFlexTemplateResponse;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.flogger.FluentLogger;
|
||||
import google.registry.beam.billing.ExpandRecurringBillingEventsPipeline;
|
||||
import google.registry.config.RegistryConfig.Config;
|
||||
import google.registry.flows.domain.DomainPricingLogic;
|
||||
import google.registry.model.ImmutableObject;
|
||||
import google.registry.model.billing.BillingEvent;
|
||||
import google.registry.model.billing.BillingEvent.Flag;
|
||||
import google.registry.config.RegistryEnvironment;
|
||||
import google.registry.model.billing.BillingEvent.OneTime;
|
||||
import google.registry.model.billing.BillingEvent.Recurring;
|
||||
import google.registry.model.common.Cursor;
|
||||
import google.registry.model.domain.Domain;
|
||||
import google.registry.model.domain.DomainHistory;
|
||||
import google.registry.model.domain.Period;
|
||||
import google.registry.model.reporting.DomainTransactionRecord;
|
||||
import google.registry.model.reporting.DomainTransactionRecord.TransactionReportField;
|
||||
import google.registry.model.tld.Registry;
|
||||
import google.registry.persistence.VKey;
|
||||
import google.registry.request.Action;
|
||||
import google.registry.request.Parameter;
|
||||
import google.registry.request.Response;
|
||||
import google.registry.request.auth.Auth;
|
||||
import google.registry.util.Clock;
|
||||
import java.util.List;
|
||||
import java.io.IOException;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import javax.inject.Inject;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
/**
|
||||
* An action that expands {@link Recurring} billing events into synthetic {@link OneTime} events.
|
||||
*
|
||||
* <p>The cursor used throughout this action (overridden if necessary using the parameter {@code
|
||||
* cursorTime}) represents the inclusive lower bound on the range of billing times that will be
|
||||
* expanded as a result of the job (the exclusive upper bound being the execution time of the job).
|
||||
* An action that kicks off a {@link ExpandRecurringBillingEventsPipeline} dataflow job to expand
|
||||
* {@link Recurring} billing events into synthetic {@link OneTime} events.
|
||||
*/
|
||||
@Action(
|
||||
service = Action.Service.BACKEND,
|
||||
@@ -74,303 +55,109 @@ import org.joda.time.DateTime;
|
||||
auth = Auth.AUTH_INTERNAL_OR_ADMIN)
|
||||
public class ExpandRecurringBillingEventsAction implements Runnable {
|
||||
|
||||
public static final String PARAM_CURSOR_TIME = "cursorTime";
|
||||
public static final String PARAM_START_TIME = "startTime";
|
||||
public static final String PARAM_END_TIME = "endTime";
|
||||
public static final String PARAM_ADVANCE_CURSOR = "advanceCursor";
|
||||
|
||||
private static final String PIPELINE_NAME = "expand_recurring_billing_events_pipeline";
|
||||
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
|
||||
|
||||
@Inject Clock clock;
|
||||
|
||||
@Inject
|
||||
@Config("jdbcBatchSize")
|
||||
int batchSize;
|
||||
@Parameter(PARAM_DRY_RUN)
|
||||
boolean isDryRun;
|
||||
|
||||
@Inject @Parameter(PARAM_DRY_RUN) boolean isDryRun;
|
||||
@Inject @Parameter(PARAM_CURSOR_TIME) Optional<DateTime> cursorTimeParam;
|
||||
@Inject
|
||||
@Parameter(PARAM_ADVANCE_CURSOR)
|
||||
boolean advanceCursor;
|
||||
|
||||
@Inject
|
||||
@Parameter(PARAM_START_TIME)
|
||||
Optional<DateTime> startTimeParam;
|
||||
|
||||
@Inject
|
||||
@Parameter(PARAM_END_TIME)
|
||||
Optional<DateTime> endTimeParam;
|
||||
|
||||
@Inject
|
||||
@Config("projectId")
|
||||
String projectId;
|
||||
|
||||
@Inject
|
||||
@Config("defaultJobRegion")
|
||||
String jobRegion;
|
||||
|
||||
@Inject
|
||||
@Config("beamStagingBucketUrl")
|
||||
String stagingBucketUrl;
|
||||
|
||||
@Inject Dataflow dataflow;
|
||||
|
||||
@Inject DomainPricingLogic domainPricingLogic;
|
||||
@Inject Response response;
|
||||
@Inject ExpandRecurringBillingEventsAction() {}
|
||||
|
||||
@Inject
|
||||
ExpandRecurringBillingEventsAction() {}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
DateTime executeTime = clock.nowUtc();
|
||||
DateTime persistedCursorTime =
|
||||
tm().transact(
|
||||
() ->
|
||||
tm().loadByKeyIfPresent(Cursor.createGlobalVKey(RECURRING_BILLING))
|
||||
.orElse(Cursor.createGlobal(RECURRING_BILLING, START_OF_TIME))
|
||||
.getCursorTime());
|
||||
DateTime cursorTime = cursorTimeParam.orElse(persistedCursorTime);
|
||||
checkArgument(!(isDryRun && advanceCursor), "Cannot advance the cursor in a dry run.");
|
||||
DateTime endTime = endTimeParam.orElse(clock.nowUtc());
|
||||
checkArgument(
|
||||
cursorTime.isBefore(executeTime), "Cursor time must be earlier than execution time.");
|
||||
logger.atInfo().log(
|
||||
"Running Recurring billing event expansion for billing time range [%s, %s).",
|
||||
cursorTime, executeTime);
|
||||
expandSqlBillingEventsInBatches(executeTime, cursorTime, persistedCursorTime);
|
||||
}
|
||||
|
||||
private void expandSqlBillingEventsInBatches(
|
||||
DateTime executeTime, DateTime cursorTime, DateTime persistedCursorTime) {
|
||||
int totalBillingEventsSaved = 0;
|
||||
long maxProcessedRecurrenceId = 0;
|
||||
SqlBatchResults sqlBatchResults;
|
||||
|
||||
do {
|
||||
final long prevMaxProcessedRecurrenceId = maxProcessedRecurrenceId;
|
||||
sqlBatchResults =
|
||||
tm().transact(
|
||||
() -> {
|
||||
Set<String> expandedDomains = newHashSet();
|
||||
int batchBillingEventsSaved = 0;
|
||||
long maxRecurrenceId = prevMaxProcessedRecurrenceId;
|
||||
List<Recurring> recurrings =
|
||||
tm().query(
|
||||
"FROM BillingRecurrence "
|
||||
+ "WHERE eventTime <= :executeTime "
|
||||
+ "AND eventTime < recurrenceEndTime "
|
||||
+ "AND id > :maxProcessedRecurrenceId "
|
||||
+ "AND recurrenceEndTime > :adjustedCursorTime "
|
||||
+ "ORDER BY id ASC",
|
||||
Recurring.class)
|
||||
.setParameter("executeTime", executeTime)
|
||||
.setParameter("maxProcessedRecurrenceId", prevMaxProcessedRecurrenceId)
|
||||
.setParameter(
|
||||
"adjustedCursorTime",
|
||||
cursorTime.minus(Registry.DEFAULT_AUTO_RENEW_GRACE_PERIOD))
|
||||
.setMaxResults(batchSize)
|
||||
.getResultList();
|
||||
for (Recurring recurring : recurrings) {
|
||||
if (expandedDomains.contains(recurring.getTargetId())) {
|
||||
// On the off chance this batch contains multiple recurrences for the same
|
||||
// domain (which is actually possible if a given domain is quickly renewed
|
||||
// multiple times in a row), then short-circuit after the first one is
|
||||
// processed that involves actually expanding a billing event. This is
|
||||
// necessary because otherwise we get an "Inserted/updated object reloaded"
|
||||
// error from Hibernate when those billing events would be loaded
|
||||
// inside a transaction where they were already written. Note, there is no
|
||||
// actual further work to be done in this case anyway, not unless it has
|
||||
// somehow been over a year since this action last ran successfully (and if
|
||||
// that were somehow true, the remaining billing events would still be
|
||||
// expanded on subsequent runs).
|
||||
continue;
|
||||
}
|
||||
int billingEventsSaved =
|
||||
expandBillingEvent(
|
||||
recurring, executeTime, cursorTime, isDryRun, domainPricingLogic);
|
||||
batchBillingEventsSaved += billingEventsSaved;
|
||||
if (billingEventsSaved > 0) {
|
||||
expandedDomains.add(recurring.getTargetId());
|
||||
}
|
||||
maxRecurrenceId = Math.max(maxRecurrenceId, recurring.getId());
|
||||
}
|
||||
return SqlBatchResults.create(
|
||||
batchBillingEventsSaved,
|
||||
maxRecurrenceId,
|
||||
maxRecurrenceId > prevMaxProcessedRecurrenceId);
|
||||
});
|
||||
totalBillingEventsSaved += sqlBatchResults.batchBillingEventsSaved();
|
||||
maxProcessedRecurrenceId = sqlBatchResults.maxProcessedRecurrenceId();
|
||||
if (sqlBatchResults.batchBillingEventsSaved() > 0) {
|
||||
logger.atInfo().log(
|
||||
"Saved %d billing events in batch (%d total) with max recurrence id %d.",
|
||||
sqlBatchResults.batchBillingEventsSaved(),
|
||||
totalBillingEventsSaved,
|
||||
maxProcessedRecurrenceId);
|
||||
} else {
|
||||
// If we're churning through a lot of no-op recurrences that don't need expanding (yet?),
|
||||
// then only log one no-op every so often as a good balance between letting the user track
|
||||
// that the action is still running while also not spamming the logs incessantly.
|
||||
logger.atInfo().atMostEvery(3, TimeUnit.MINUTES).log(
|
||||
"Processed up to max recurrence id %d (no billing events saved recently).",
|
||||
maxProcessedRecurrenceId);
|
||||
}
|
||||
} while (sqlBatchResults.shouldContinue());
|
||||
|
||||
if (!isDryRun) {
|
||||
logger.atInfo().log("Saved %d total OneTime billing events.", totalBillingEventsSaved);
|
||||
} else {
|
||||
logger.atInfo().log(
|
||||
"Generated %d total OneTime billing events (dry run).", totalBillingEventsSaved);
|
||||
}
|
||||
logger.atInfo().log(
|
||||
"Recurring event expansion %s complete for billing event range [%s, %s).",
|
||||
isDryRun ? "(dry run) " : "", cursorTime, executeTime);
|
||||
tm().transact(
|
||||
() -> {
|
||||
// Check for the unlikely scenario where the cursor has been altered during the
|
||||
// expansion.
|
||||
DateTime currentCursorTime =
|
||||
tm().loadByKeyIfPresent(Cursor.createGlobalVKey(RECURRING_BILLING))
|
||||
.orElse(Cursor.createGlobal(RECURRING_BILLING, START_OF_TIME))
|
||||
.getCursorTime();
|
||||
if (!currentCursorTime.equals(persistedCursorTime)) {
|
||||
throw new IllegalStateException(
|
||||
!endTime.isAfter(clock.nowUtc()), "End time (%s) must be at or before now", endTime);
|
||||
DateTime startTime =
|
||||
startTimeParam.orElse(
|
||||
tm().transact(
|
||||
() ->
|
||||
tm().loadByKeyIfPresent(Cursor.createGlobalVKey(RECURRING_BILLING))
|
||||
.orElse(Cursor.createGlobal(RECURRING_BILLING, START_OF_TIME))
|
||||
.getCursorTime()));
|
||||
checkArgument(
|
||||
startTime.isBefore(endTime),
|
||||
String.format("Start time (%s) must be before end time (%s)", startTime, endTime));
|
||||
LaunchFlexTemplateParameter launchParameter =
|
||||
new LaunchFlexTemplateParameter()
|
||||
.setJobName(
|
||||
createJobName(
|
||||
String.format(
|
||||
"Current cursor position %s does not match persisted cursor position %s.",
|
||||
currentCursorTime, persistedCursorTime));
|
||||
}
|
||||
if (!isDryRun) {
|
||||
tm().put(Cursor.createGlobal(RECURRING_BILLING, executeTime));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@AutoValue
|
||||
abstract static class SqlBatchResults {
|
||||
abstract int batchBillingEventsSaved();
|
||||
|
||||
abstract long maxProcessedRecurrenceId();
|
||||
|
||||
abstract boolean shouldContinue();
|
||||
|
||||
static SqlBatchResults create(
|
||||
int batchBillingEventsSaved, long maxProcessedRecurrenceId, boolean shouldContinue) {
|
||||
return new AutoValue_ExpandRecurringBillingEventsAction_SqlBatchResults(
|
||||
batchBillingEventsSaved, maxProcessedRecurrenceId, shouldContinue);
|
||||
"expand-billing-%s", startTime.toString("yyyy-MM-dd't'HH-mm-ss'z'")),
|
||||
clock))
|
||||
.setContainerSpecGcsPath(
|
||||
String.format("%s/%s_metadata.json", stagingBucketUrl, PIPELINE_NAME))
|
||||
.setParameters(
|
||||
new ImmutableMap.Builder<String, String>()
|
||||
.put("registryEnvironment", RegistryEnvironment.get().name())
|
||||
.put("startTime", startTime.toString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"))
|
||||
.put("endTime", endTime.toString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"))
|
||||
.put("isDryRun", Boolean.toString(isDryRun))
|
||||
.put("advanceCursor", Boolean.toString(advanceCursor))
|
||||
.build());
|
||||
logger.atInfo().log(
|
||||
"Launching recurring billing event expansion pipeline for event time range [%s, %s)%s.",
|
||||
startTime,
|
||||
endTime,
|
||||
isDryRun ? " in dry run mode" : advanceCursor ? "" : " without advancing the cursor");
|
||||
try {
|
||||
LaunchFlexTemplateResponse launchResponse =
|
||||
dataflow
|
||||
.projects()
|
||||
.locations()
|
||||
.flexTemplates()
|
||||
.launch(
|
||||
projectId,
|
||||
jobRegion,
|
||||
new LaunchFlexTemplateRequest().setLaunchParameter(launchParameter))
|
||||
.execute();
|
||||
logger.atInfo().log("Got response: %s", launchResponse.getJob().toPrettyString());
|
||||
response.setStatus(SC_OK);
|
||||
response.setPayload(
|
||||
String.format(
|
||||
"Launched recurring billing event expansion pipeline: %s",
|
||||
launchResponse.getJob().getId()));
|
||||
} catch (IOException e) {
|
||||
logger.atWarning().withCause(e).log("Pipeline Launch failed");
|
||||
response.setStatus(SC_INTERNAL_SERVER_ERROR);
|
||||
response.setPayload(String.format("Pipeline launch failed: %s", e.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
private static int expandBillingEvent(
|
||||
Recurring recurring,
|
||||
DateTime executeTime,
|
||||
DateTime cursorTime,
|
||||
boolean isDryRun,
|
||||
DomainPricingLogic domainPricingLogic) {
|
||||
ImmutableSet.Builder<OneTime> syntheticOneTimesBuilder = new ImmutableSet.Builder<>();
|
||||
final Registry tld = Registry.get(getTldFromDomainName(recurring.getTargetId()));
|
||||
|
||||
// Determine the complete set of times at which this recurring event should
|
||||
// occur (up to and including the runtime of the action).
|
||||
Iterable<DateTime> eventTimes =
|
||||
recurring
|
||||
.getRecurrenceTimeOfYear()
|
||||
.getInstancesInRange(
|
||||
Range.closed(
|
||||
recurring.getEventTime(),
|
||||
earliestOf(recurring.getRecurrenceEndTime(), executeTime)));
|
||||
|
||||
// Convert these event times to billing times
|
||||
final ImmutableSet<DateTime> billingTimes =
|
||||
getBillingTimesInScope(eventTimes, cursorTime, executeTime, tld);
|
||||
|
||||
VKey<Domain> domainKey = VKey.create(Domain.class, recurring.getDomainRepoId());
|
||||
Iterable<OneTime> oneTimesForDomain;
|
||||
oneTimesForDomain =
|
||||
tm().createQueryComposer(OneTime.class)
|
||||
.where("domainRepoId", EQ, recurring.getDomainRepoId())
|
||||
.list();
|
||||
|
||||
// Determine the billing times that already have OneTime events persisted.
|
||||
ImmutableSet<DateTime> existingBillingTimes =
|
||||
getExistingBillingTimes(oneTimesForDomain, recurring);
|
||||
|
||||
ImmutableSet.Builder<DomainHistory> historyEntriesBuilder = new ImmutableSet.Builder<>();
|
||||
// Create synthetic OneTime events for all billing times that do not yet have
|
||||
// an event persisted.
|
||||
for (DateTime billingTime : difference(billingTimes, existingBillingTimes)) {
|
||||
// Construct a new HistoryEntry that parents over the OneTime
|
||||
DomainHistory historyEntry =
|
||||
new DomainHistory.Builder()
|
||||
.setBySuperuser(false)
|
||||
.setRegistrarId(recurring.getRegistrarId())
|
||||
.setModificationTime(tm().getTransactionTime())
|
||||
.setDomain(tm().loadByKey(domainKey))
|
||||
.setPeriod(Period.create(1, YEARS))
|
||||
.setReason("Domain autorenewal by ExpandRecurringBillingEventsAction")
|
||||
.setRequestedByRegistrar(false)
|
||||
.setType(DOMAIN_AUTORENEW)
|
||||
// Note: the following statement seems to not be entirely correct as manual renewal
|
||||
// during the autorenew grace period also closes out the existing recurrence, but in
|
||||
// that instance the autorenew history entry should still have the transaction records
|
||||
// for obvious reasons. It can be argued the history entry should always have the
|
||||
// transaction record, regardless of what happens afterward. If the domain is deleted
|
||||
// later during the autorenew grace period, another history entry for the delete would
|
||||
// record that mutation separately, but the previous autorenew should not have its
|
||||
// history entry retroactively altered, or in this case have the transaction records
|
||||
// omitted when its created belatedly (when billing time is in scope). However, since
|
||||
// we will be rewriting this action and only want to do the absolute minimum change to
|
||||
// fix it for now, we will leave the current logic in place to avoid any unnecessary
|
||||
// complications.
|
||||
//
|
||||
// Don't write a domain transaction record if the recurrence was
|
||||
// ended prior to the billing time (i.e. a domain was deleted
|
||||
// during the autorenew grace period).
|
||||
.setDomainTransactionRecords(
|
||||
recurring.getRecurrenceEndTime().isBefore(billingTime)
|
||||
? ImmutableSet.of()
|
||||
: ImmutableSet.of(
|
||||
DomainTransactionRecord.create(
|
||||
tld.getTldStr(),
|
||||
// We report this when the autorenew grace period
|
||||
// ends
|
||||
billingTime,
|
||||
TransactionReportField.netRenewsFieldFromYears(1),
|
||||
1)))
|
||||
.build();
|
||||
historyEntriesBuilder.add(historyEntry);
|
||||
|
||||
DateTime eventTime = billingTime.minus(tld.getAutoRenewGracePeriodLength());
|
||||
|
||||
syntheticOneTimesBuilder.add(
|
||||
new OneTime.Builder()
|
||||
.setBillingTime(billingTime)
|
||||
.setRegistrarId(recurring.getRegistrarId())
|
||||
// Determine the cost for a one-year renewal.
|
||||
.setCost(
|
||||
domainPricingLogic
|
||||
.getRenewPrice(tld, recurring.getTargetId(), eventTime, 1, recurring)
|
||||
.getRenewCost())
|
||||
.setEventTime(eventTime)
|
||||
.setFlags(union(recurring.getFlags(), Flag.SYNTHETIC))
|
||||
.setDomainHistory(historyEntry)
|
||||
.setPeriodYears(1)
|
||||
.setReason(recurring.getReason())
|
||||
.setSyntheticCreationTime(executeTime)
|
||||
.setCancellationMatchingBillingEvent(recurring)
|
||||
.setTargetId(recurring.getTargetId())
|
||||
.build());
|
||||
}
|
||||
Set<DomainHistory> historyEntries = historyEntriesBuilder.build();
|
||||
Set<OneTime> syntheticOneTimes = syntheticOneTimesBuilder.build();
|
||||
if (!isDryRun) {
|
||||
ImmutableSet<ImmutableObject> entitiesToSave =
|
||||
new ImmutableSet.Builder<ImmutableObject>()
|
||||
.addAll(historyEntries)
|
||||
.addAll(syntheticOneTimes)
|
||||
.build();
|
||||
tm().putAll(entitiesToSave);
|
||||
}
|
||||
return syntheticOneTimes.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters a set of {@link DateTime}s down to event times that are in scope for a particular
|
||||
* action run, given the cursor time and the action execution time.
|
||||
*/
|
||||
protected static ImmutableSet<DateTime> getBillingTimesInScope(
|
||||
Iterable<DateTime> eventTimes,
|
||||
DateTime cursorTime,
|
||||
DateTime executeTime,
|
||||
final Registry tld) {
|
||||
return Streams.stream(eventTimes)
|
||||
.map(eventTime -> eventTime.plus(tld.getAutoRenewGracePeriodLength()))
|
||||
.filter(Range.closedOpen(cursorTime, executeTime))
|
||||
.collect(toImmutableSet());
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines an {@link ImmutableSet} of {@link DateTime}s that have already been persisted for a
|
||||
* given recurring billing event.
|
||||
*/
|
||||
private static ImmutableSet<DateTime> getExistingBillingTimes(
|
||||
Iterable<BillingEvent.OneTime> oneTimesForDomain,
|
||||
final BillingEvent.Recurring recurringEvent) {
|
||||
return Streams.stream(oneTimesForDomain)
|
||||
.filter(
|
||||
billingEvent ->
|
||||
recurringEvent
|
||||
.createVKey()
|
||||
.equals(billingEvent.getCancellationMatchingBillingEvent()))
|
||||
.map(OneTime::getBillingTime)
|
||||
.collect(toImmutableSet());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,9 +138,15 @@ public class ExpandRecurringBillingEventsPipeline implements Serializable {
|
||||
private final boolean isDryRun;
|
||||
private final boolean advanceCursor;
|
||||
private final Counter recurringsInScopeCounter =
|
||||
Metrics.counter("ExpandBilling", "RecurringsInScope");
|
||||
private final Counter expandedOneTimeCounter =
|
||||
Metrics.counter("ExpandBilling", "ExpandedOneTime");
|
||||
Metrics.counter("ExpandBilling", "Recurrings in scope for expansion");
|
||||
// Note that this counter is only accurate when running in dry run mode. Because SQL persistence
|
||||
// is a side effect and not idempotent, a transaction to save OneTimes could be successful but the
|
||||
// transform that contains it could be still be retried, rolling back the counter increment. The
|
||||
// same transform, when retried, would skip the already expanded OneTime, causing this counter to
|
||||
// be lower than it should be when not in dry run mode.
|
||||
// See: https://beam.apache.org/documentation/programming-guide/#user-code-idempotence
|
||||
private final Counter oneTimesToExpandCounter =
|
||||
Metrics.counter("ExpandBilling", "OneTimes that would be expanded");
|
||||
|
||||
ExpandRecurringBillingEventsPipeline(
|
||||
ExpandRecurringBillingEventsPipelineOptions options, Clock clock) {
|
||||
@@ -148,7 +154,7 @@ public class ExpandRecurringBillingEventsPipeline implements Serializable {
|
||||
endTime = DateTime.parse(options.getEndTime());
|
||||
checkArgument(
|
||||
!endTime.isAfter(clock.nowUtc()),
|
||||
String.format("End time %s must be on or before now.", endTime));
|
||||
String.format("End time %s must be at or before now.", endTime));
|
||||
checkArgument(
|
||||
startTime.isBefore(endTime),
|
||||
String.format("[%s, %s) is not a valid window of operation.", startTime, endTime));
|
||||
@@ -182,7 +188,7 @@ public class ExpandRecurringBillingEventsPipeline implements Serializable {
|
||||
+ "AND event_Time < :endTime "
|
||||
// Recurrence should not close before start time.
|
||||
+ "AND :startTime < recurrence_end_time "
|
||||
// Last expansion should happen at least one year before start time.
|
||||
// Last expansion should happen at least one year before end time.
|
||||
+ "AND recurrence_last_expansion < :oneYearAgo "
|
||||
// The recurrence should not close before next expansion time.
|
||||
+ "AND recurrence_last_expansion + INTERVAL '1 YEAR' < recurrence_end_time",
|
||||
@@ -195,6 +201,7 @@ public class ExpandRecurringBillingEventsPipeline implements Serializable {
|
||||
endTime.minusYears(1)),
|
||||
true,
|
||||
(BigInteger id) -> {
|
||||
recurringsInScopeCounter.inc();
|
||||
// Note that because all elements are mapped to the same dummy key, the next
|
||||
// batching transform will effectively be serial. This however does not matter for
|
||||
// our use case because the elements were obtained from a SQL read query, which
|
||||
@@ -239,20 +246,40 @@ public class ExpandRecurringBillingEventsPipeline implements Serializable {
|
||||
|
||||
private void expandOneRecurring(Long recurringId, ImmutableSet.Builder<ImmutableObject> results) {
|
||||
Recurring recurring = tm().loadByKey(Recurring.createVKey(recurringId));
|
||||
recurringsInScopeCounter.inc();
|
||||
Domain domain = tm().loadByKey(Domain.createVKey(recurring.getDomainRepoId()));
|
||||
Registry tld = Registry.get(domain.getTld());
|
||||
|
||||
// Determine the complete set of EventTimes this recurring event should expand to within
|
||||
// [max(recurrenceLastExpansion + 1 yr, startTime), min(recurrenceEndTime, endTime)).
|
||||
ImmutableSet<DateTime> eventTimes =
|
||||
ImmutableSet.copyOf(
|
||||
recurring
|
||||
.getRecurrenceTimeOfYear()
|
||||
.getInstancesInRange(
|
||||
Range.closedOpen(
|
||||
latestOf(recurring.getRecurrenceLastExpansion().plusYears(1), startTime),
|
||||
earliestOf(recurring.getRecurrenceEndTime(), endTime))));
|
||||
//
|
||||
// This range should always be legal for recurrings that are returned from the query. However,
|
||||
// it is possible that the recurring has changed between when the read transformation occurred
|
||||
// and now. This could be caused by some out-of-process mutations (such as a domain deletion
|
||||
// closing out a previously open-ended recurrence), or more subtly, Beam could execute the same
|
||||
// work multiple times due to transient communication issues between workers and the scheduler.
|
||||
// Such opportunistic retries are OK for pure functional transformations, but can cause
|
||||
// unexpected behavior when side effects are executed more than once. For example, the
|
||||
// recurrence_last_expansion field could be updated by a worker after a success expansion, which
|
||||
// failed to report the status to the scheduler in time, which in turn scheduled another worker
|
||||
// to work on the same batch. The second worker would see a new recurrence_last_expansion that
|
||||
// causes the range to be illegal.
|
||||
//
|
||||
// The best way to handle any unexpected behavior is to simply drop the recurring from
|
||||
// expansion, if its new state still calls for an expansion, it would be picked up the next time
|
||||
// the pipeline runs.
|
||||
ImmutableSet<DateTime> eventTimes;
|
||||
try {
|
||||
eventTimes =
|
||||
ImmutableSet.copyOf(
|
||||
recurring
|
||||
.getRecurrenceTimeOfYear()
|
||||
.getInstancesInRange(
|
||||
Range.closedOpen(
|
||||
latestOf(recurring.getRecurrenceLastExpansion().plusYears(1), startTime),
|
||||
earliestOf(recurring.getRecurrenceEndTime(), endTime))));
|
||||
} catch (IllegalArgumentException e) {
|
||||
return;
|
||||
}
|
||||
Domain domain = tm().loadByKey(Domain.createVKey(recurring.getDomainRepoId()));
|
||||
Registry tld = Registry.get(domain.getTld());
|
||||
|
||||
// Find the times for which the OneTime billing event are already created, making this expansion
|
||||
// idempotent. There is no need to match to the domain repo ID as the cancellation matching
|
||||
@@ -277,7 +304,7 @@ public class ExpandRecurringBillingEventsPipeline implements Serializable {
|
||||
// Create new OneTime and DomainHistory for EventTimes that needs to be expanded.
|
||||
for (DateTime eventTime : eventTimesToExpand) {
|
||||
recurrenceLastExpansionTime = latestOf(recurrenceLastExpansionTime, eventTime);
|
||||
expandedOneTimeCounter.inc();
|
||||
oneTimesToExpandCounter.inc();
|
||||
DateTime billingTime = eventTime.plus(tld.getAutoRenewGracePeriodLength());
|
||||
// Note that the DomainHistory is created as of transaction time, as opposed to event time.
|
||||
// This might be counterintuitive because other DomainHistories are created at the time
|
||||
|
||||
@@ -427,7 +427,7 @@ misc:
|
||||
|
||||
beam:
|
||||
# The default region to run Apache Beam (Cloud Dataflow) jobs in.
|
||||
defaultJobRegion: us-east1
|
||||
defaultJobRegion: us-central1
|
||||
# The GCE machine type to use when a job is CPU-intensive (e. g. RDE). Be sure
|
||||
# to check the VM CPU quota for the job region. In a massively parallel
|
||||
# pipeline this quota can be easily reached and needs to be raised, otherwise
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchDnl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest DNL from MarksDB and inserts it into the database.
|
||||
(See: TmchDnlServlet, ClaimsList)
|
||||
(See: TmchDnlAction, ClaimsList)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
@@ -45,7 +45,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchSmdrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest SMDRL from MarksDB and inserts it into the database.
|
||||
(See: TmchSmdrlServlet, SignedMarkRevocationList)
|
||||
(See: TmchSmdrlAction, SignedMarkRevocationList)
|
||||
</description>
|
||||
<schedule>every 12 hours from 00:15 to 12:15</schedule>
|
||||
<target>backend</target>
|
||||
@@ -55,7 +55,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchCrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest CRL from MarksDB and inserts it into the database.
|
||||
(See: TmchCrlServlet)
|
||||
(See: TmchCrlAction)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
@@ -89,7 +89,7 @@
|
||||
</cron>
|
||||
|
||||
<cron>
|
||||
<url><![CDATA[/_dr/task/expandRecurringBillingEvents]]></url>
|
||||
<url><![CDATA[/_dr/task/expandRecurringBillingEvents?advanceCursor]]></url>
|
||||
<description>
|
||||
This job runs an action that creates synthetic OneTime billing events from Recurring billing
|
||||
events. Events are created for all instances of Recurring billing events that should exist
|
||||
|
||||
@@ -94,6 +94,12 @@
|
||||
<url-pattern>/registry-lock-verify</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Registrar console endpoints -->
|
||||
<servlet-mapping>
|
||||
<servlet-name>frontend-servlet</servlet-name>
|
||||
<url-pattern>/console-api/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Security config -->
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchDnl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest DNL from MarksDB and inserts it into the database.
|
||||
(See: TmchDnlServlet, ClaimsList)
|
||||
(See: TmchDnlAction, ClaimsList)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
@@ -68,7 +68,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchSmdrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest SMDRL from MarksDB and inserts it into the database.
|
||||
(See: TmchSmdrlServlet, SignedMarkRevocationList)
|
||||
(See: TmchSmdrlAction, SignedMarkRevocationList)
|
||||
</description>
|
||||
<schedule>every 12 hours from 00:15 to 12:15</schedule>
|
||||
<target>backend</target>
|
||||
@@ -78,7 +78,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchCrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest CRL from MarksDB and inserts it into the database.
|
||||
(See: TmchCrlServlet)
|
||||
(See: TmchCrlAction)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchDnl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest DNL from MarksDB and inserts it into the database.
|
||||
(See: TmchDnlServlet, ClaimsList)
|
||||
(See: TmchDnlAction, ClaimsList)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
@@ -68,7 +68,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchSmdrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest SMDRL from MarksDB and inserts it into the database.
|
||||
(See: TmchSmdrlServlet, SignedMarkRevocationList)
|
||||
(See: TmchSmdrlAction, SignedMarkRevocationList)
|
||||
</description>
|
||||
<schedule>every 12 hours from 00:15 to 12:15</schedule>
|
||||
<target>backend</target>
|
||||
@@ -78,7 +78,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchCrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest CRL from MarksDB and inserts it into the database.
|
||||
(See: TmchCrlServlet)
|
||||
(See: TmchCrlAction)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
@@ -132,7 +132,7 @@
|
||||
</cron>
|
||||
|
||||
<cron>
|
||||
<url><![CDATA[/_dr/task/expandRecurringBillingEvents]]></url>
|
||||
<url><![CDATA[/_dr/task/expandRecurringBillingEvents?advanceCursor]]></url>
|
||||
<description>
|
||||
This job runs an action that creates synthetic OneTime billing events from Recurring billing
|
||||
events. Events are created for all instances of Recurring billing events that should exist
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchDnl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest DNL from MarksDB and inserts it into the database.
|
||||
(See: TmchDnlServlet, ClaimsList)
|
||||
(See: TmchDnlAction, ClaimsList)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
@@ -52,7 +52,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchSmdrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest SMDRL from MarksDB and inserts it into the database.
|
||||
(See: TmchSmdrlServlet, SignedMarkRevocationList)
|
||||
(See: TmchSmdrlAction, SignedMarkRevocationList)
|
||||
</description>
|
||||
<schedule>every 12 hours from 00:15 to 12:15</schedule>
|
||||
<target>backend</target>
|
||||
@@ -62,7 +62,7 @@
|
||||
<url><![CDATA[/_dr/cron/fanout?queue=marksdb&endpoint=/_dr/task/tmchCrl&runInEmpty]]></url>
|
||||
<description>
|
||||
This job downloads the latest CRL from MarksDB and inserts it into the database.
|
||||
(See: TmchCrlServlet)
|
||||
(See: TmchCrlAction)
|
||||
</description>
|
||||
<schedule>every 12 hours synchronized</schedule>
|
||||
<target>backend</target>
|
||||
@@ -107,7 +107,7 @@
|
||||
</cron>
|
||||
|
||||
<cron>
|
||||
<url><![CDATA[/_dr/task/expandRecurringBillingEvents]]></url>
|
||||
<url><![CDATA[/_dr/task/expandRecurringBillingEvents?advanceCursor]]></url>
|
||||
<description>
|
||||
This job runs an action that creates synthetic OneTime billing events from Recurring billing
|
||||
events. Events are created for all instances of Recurring billing events that should exist
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
package google.registry.flows.domain;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
import static com.google.common.collect.ImmutableList.toImmutableList;
|
||||
import static com.google.common.collect.ImmutableSet.toImmutableSet;
|
||||
import static google.registry.flows.FlowUtils.persistEntityChanges;
|
||||
import static google.registry.flows.FlowUtils.validateRegistrarIsLoggedIn;
|
||||
@@ -52,6 +54,7 @@ import static google.registry.model.tld.Registry.TldState.QUIET_PERIOD;
|
||||
import static google.registry.model.tld.Registry.TldState.START_DATE_SUNRISE;
|
||||
import static google.registry.model.tld.label.ReservationType.NAME_COLLISION;
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
import static google.registry.util.CollectionUtils.isNullOrEmpty;
|
||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||
import static google.registry.util.DateTimeUtils.leapSafeAddYears;
|
||||
|
||||
@@ -61,6 +64,7 @@ import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.net.InternetDomainName;
|
||||
import google.registry.dns.DnsQueue;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.EppException.AssociationProhibitsOperationException;
|
||||
import google.registry.flows.EppException.CommandUseErrorException;
|
||||
import google.registry.flows.EppException.ParameterValuePolicyErrorException;
|
||||
import google.registry.flows.ExtensionManager;
|
||||
@@ -117,7 +121,9 @@ import google.registry.model.tld.Registry.TldType;
|
||||
import google.registry.model.tld.label.ReservationType;
|
||||
import google.registry.model.tmch.ClaimsList;
|
||||
import google.registry.model.tmch.ClaimsListDao;
|
||||
import google.registry.persistence.VKey;
|
||||
import google.registry.tmch.LordnTaskUtils;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
@@ -156,6 +162,7 @@ import org.joda.time.Duration;
|
||||
* @error {@link DomainFlowTmchUtils.NoMarksFoundMatchingDomainException}
|
||||
* @error {@link DomainFlowTmchUtils.FoundMarkNotYetValidException}
|
||||
* @error {@link DomainFlowTmchUtils.FoundMarkExpiredException}
|
||||
* @error {@link DomainFlowTmchUtils.SignedMarkRevokedErrorException}
|
||||
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
|
||||
* @error {@link DomainFlowUtils.AcceptedTooLongAgoException}
|
||||
* @error {@link DomainFlowUtils.BadDomainNameCharacterException}
|
||||
@@ -270,6 +277,9 @@ public final class DomainCreateFlow implements TransactionalFlow {
|
||||
registrarId,
|
||||
now,
|
||||
eppInput.getSingleExtension(AllocationTokenExtension.class));
|
||||
if (!allocationToken.isPresent() && !registry.getDefaultPromoTokens().isEmpty()) {
|
||||
allocationToken = checkForDefaultToken(registry, command);
|
||||
}
|
||||
boolean isAnchorTenant =
|
||||
isAnchorTenant(
|
||||
domainName, allocationToken, eppInput.getSingleExtension(MetadataExtension.class));
|
||||
@@ -434,6 +444,36 @@ public final class DomainCreateFlow implements TransactionalFlow {
|
||||
.build();
|
||||
}
|
||||
|
||||
private Optional<AllocationToken> checkForDefaultToken(
|
||||
Registry registry, DomainCommand.Create command) throws EppException {
|
||||
Map<VKey<AllocationToken>, Optional<AllocationToken>> tokens =
|
||||
AllocationToken.getAll(registry.getDefaultPromoTokens());
|
||||
ImmutableList<Optional<AllocationToken>> tokenList =
|
||||
registry.getDefaultPromoTokens().stream()
|
||||
.map(tokens::get)
|
||||
.filter(Optional::isPresent)
|
||||
.collect(toImmutableList());
|
||||
checkState(
|
||||
!isNullOrEmpty(tokenList),
|
||||
"Failure while loading default TLD promotions from the database");
|
||||
// Check if any of the tokens are valid for this domain registration
|
||||
for (Optional<AllocationToken> token : tokenList) {
|
||||
try {
|
||||
AllocationTokenFlowUtils.validateToken(
|
||||
InternetDomainName.from(command.getDomainName()),
|
||||
token.get(),
|
||||
registrarId,
|
||||
tm().getTransactionTime());
|
||||
} catch (AssociationProhibitsOperationException e) {
|
||||
// Allocation token was not valid for this registration, continue to check the next token in
|
||||
// the list
|
||||
continue;
|
||||
}
|
||||
// Only use the first valid token in the list
|
||||
return token;
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
/**
|
||||
* Verifies that signed marks are only sent during sunrise.
|
||||
*
|
||||
|
||||
@@ -307,6 +307,13 @@ public final class DomainUpdateFlow implements TransactionalFlow {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the new state of the domain is valid.
|
||||
*
|
||||
* <p>Note: Before adding or amending conditions, existing data has to be verified for being
|
||||
* compliant with the additions or amendments, otherwise existing data can become invalid and
|
||||
* cause Domain update failure.
|
||||
*/
|
||||
private void validateNewState(Domain newDomain) throws EppException {
|
||||
validateRequiredContactsPresent(newDomain.getRegistrant(), newDomain.getContacts());
|
||||
validateDsData(newDomain.getDsData());
|
||||
|
||||
@@ -108,7 +108,7 @@ public class AllocationTokenFlowUtils {
|
||||
*
|
||||
* @throws EppException if the token is invalid in any way
|
||||
*/
|
||||
private static void validateToken(
|
||||
public static void validateToken(
|
||||
InternetDomainName domainName, AllocationToken token, String registrarId, DateTime now)
|
||||
throws EppException {
|
||||
|
||||
|
||||
@@ -68,7 +68,6 @@ U+011F # LATIN SMALL LETTER G WITH BREVE
|
||||
U+01E7 # LATIN SMALL LETTER G WITH CARON
|
||||
U+0121 # LATIN SMALL LETTER G WITH DOT ABOVE
|
||||
U+0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
U+01E5 # LATIN SMALL LETTER G WITH STROKE
|
||||
U+0068 # LATIN SMALL LETTER H
|
||||
U+0127 # LATIN SMALL LETTER H WITH STROKE
|
||||
U+0069 # LATIN SMALL LETTER I
|
||||
|
||||
@@ -16,6 +16,7 @@ package google.registry.model;
|
||||
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
|
||||
import com.google.gson.annotations.Expose;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embeddable;
|
||||
@@ -28,6 +29,7 @@ import org.joda.time.DateTime;
|
||||
public class CreateAutoTimestamp extends ImmutableObject implements UnsafeSerializable {
|
||||
|
||||
@Column(nullable = false)
|
||||
@Expose
|
||||
DateTime creationTime;
|
||||
|
||||
@PrePersist
|
||||
|
||||
@@ -31,8 +31,9 @@ import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import google.registry.config.RegistryConfig;
|
||||
import google.registry.model.annotations.IdAllocation;
|
||||
import google.registry.dns.RefreshDnsAction;
|
||||
import google.registry.model.eppcommon.StatusValue;
|
||||
import google.registry.model.transfer.TransferData;
|
||||
import google.registry.persistence.VKey;
|
||||
@@ -41,6 +42,7 @@ import java.time.Duration;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.persistence.Access;
|
||||
import javax.persistence.AccessType;
|
||||
import javax.persistence.AttributeOverride;
|
||||
@@ -66,7 +68,7 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5730">RFC 5730</a>
|
||||
*/
|
||||
@IdAllocation @Transient String repoId;
|
||||
@Expose @Transient String repoId;
|
||||
|
||||
/**
|
||||
* The ID of the registrar that is currently sponsoring this resource.
|
||||
@@ -74,7 +76,7 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
* <p>This can be null in the case of pre-Registry-3.0-migration history objects with null
|
||||
* resource fields.
|
||||
*/
|
||||
String currentSponsorRegistrarId;
|
||||
@Expose String currentSponsorRegistrarId;
|
||||
|
||||
/**
|
||||
* The ID of the registrar that created this resource.
|
||||
@@ -82,7 +84,7 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
* <p>This can be null in the case of pre-Registry-3.0-migration history objects with null
|
||||
* resource fields.
|
||||
*/
|
||||
String creationRegistrarId;
|
||||
@Expose String creationRegistrarId;
|
||||
|
||||
/**
|
||||
* The ID of the registrar that last updated this resource.
|
||||
@@ -91,7 +93,7 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
* edits; it only includes EPP-visible modifications such as {@literal <update>}. Can be null if
|
||||
* the resource has never been modified.
|
||||
*/
|
||||
String lastEppUpdateRegistrarId;
|
||||
@Expose String lastEppUpdateRegistrarId;
|
||||
|
||||
/**
|
||||
* The time when this resource was created.
|
||||
@@ -105,6 +107,7 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
*/
|
||||
// Need to override the default non-null column attribute.
|
||||
@AttributeOverride(name = "creationTime", column = @Column)
|
||||
@Expose
|
||||
CreateAutoTimestamp creationTime = CreateAutoTimestamp.create(null);
|
||||
|
||||
/**
|
||||
@@ -129,10 +132,27 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
* edits; it only includes EPP-visible modifications such as {@literal <update>}. Can be null if
|
||||
* the resource has never been modified.
|
||||
*/
|
||||
DateTime lastEppUpdateTime;
|
||||
@Expose DateTime lastEppUpdateTime;
|
||||
|
||||
/** Status values associated with this resource. */
|
||||
Set<StatusValue> statuses;
|
||||
@Expose Set<StatusValue> statuses;
|
||||
|
||||
/**
|
||||
* When this domain/host's DNS was requested to be refreshed, or null if its DNS is up-to-date.
|
||||
*
|
||||
* <p>This will almost always be null except in the couple of minutes' interval between when a
|
||||
* DNS-affecting create or update operation takes place and when the {@link RefreshDnsAction}
|
||||
* runs, which resets this back to null upon completion of the DNS refresh task. This is a {@link
|
||||
* DateTime} rather than a simple dirty boolean so that the DNS refresh action can order by the
|
||||
* DNS refresh request time and take action on the oldest ones first.
|
||||
*
|
||||
* <p>Note that in the {@code DomainHistory}/{@code HostHistory} table this value means something
|
||||
* slightly different: It means that the given domain/host action requested a DNS update. Unlike
|
||||
* on the {@code Domain}/{code Host} table, this value is not then subsequently nulled out once
|
||||
* the DNS refresh is complete; rather, it remains as a permanent record of which actions were
|
||||
* DNS-affecting and which were not.
|
||||
*/
|
||||
@Transient @Nullable protected DateTime dnsRefreshRequestTime;
|
||||
|
||||
public String getRepoId() {
|
||||
return repoId;
|
||||
@@ -185,6 +205,19 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
return deletionTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the DNS refresh request time iff this domain/host's DNS needs refreshing, otherwise
|
||||
* absent.
|
||||
*/
|
||||
public Optional<DateTime> getDnsRefreshRequestTime() {
|
||||
return Optional.ofNullable(dnsRefreshRequestTime);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private void setInternalDnsRefreshRequestTime(DateTime time) {
|
||||
dnsRefreshRequestTime = time;
|
||||
}
|
||||
|
||||
/** Return a clone of the resource with timed status values modified using the given time. */
|
||||
public abstract EppResource cloneProjectedAtTime(DateTime now);
|
||||
|
||||
@@ -338,6 +371,11 @@ public abstract class EppResource extends UpdateAutoTimestampEntity implements B
|
||||
return thisCastToDerived();
|
||||
}
|
||||
|
||||
public B setDnsRefreshRequestTime(Optional<DateTime> dnsRefreshRequestTime) {
|
||||
getInstance().dnsRefreshRequestTime = dnsRefreshRequestTime.orElse(null);
|
||||
return thisCastToDerived();
|
||||
}
|
||||
|
||||
/** Build the resource, nullifying empty strings and sets and setting defaults. */
|
||||
@Override
|
||||
public T build() {
|
||||
|
||||
@@ -59,6 +59,7 @@ import org.joda.time.DateTime;
|
||||
@Index(columnList = "tld"),
|
||||
@Index(columnList = "registrantContact"),
|
||||
@Index(columnList = "dnsRefreshRequestTime"),
|
||||
@Index(columnList = "lordnPhase"),
|
||||
@Index(columnList = "billing_recurrence_id"),
|
||||
@Index(columnList = "transfer_billing_event_id"),
|
||||
@Index(columnList = "transfer_billing_recurrence_id")
|
||||
@@ -200,6 +201,7 @@ public class Domain extends DomainBase implements ForeignKeyedEppResource {
|
||||
.setStatusValues(domainBase.getStatusValues())
|
||||
.setTransferData(domainBase.getTransferData())
|
||||
.setDnsRefreshRequestTime(domainBase.getDnsRefreshRequestTime())
|
||||
.setLordnPhase(domainBase.getLordnPhase())
|
||||
.setCurrentPackageToken(domainBase.getCurrentPackageToken().orElse(null));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.ImmutableSortedSet;
|
||||
import com.google.common.collect.Ordering;
|
||||
import com.google.common.collect.Sets;
|
||||
import google.registry.dns.RefreshDnsAction;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import google.registry.flows.ResourceFlowUtils;
|
||||
import google.registry.model.EppResource;
|
||||
import google.registry.model.EppResource.ResourceWithTransferData;
|
||||
@@ -61,6 +61,8 @@ import google.registry.model.transfer.DomainTransferData;
|
||||
import google.registry.model.transfer.TransferStatus;
|
||||
import google.registry.persistence.VKey;
|
||||
import google.registry.tldconfig.idn.IdnLabelValidator;
|
||||
import google.registry.tmch.LordnTaskUtils.LordnPhase;
|
||||
import google.registry.tmch.NordnUploadAction;
|
||||
import google.registry.util.CollectionUtils;
|
||||
import google.registry.util.DateTimeUtils;
|
||||
import java.util.HashSet;
|
||||
@@ -76,6 +78,8 @@ import javax.persistence.AttributeOverrides;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.persistence.Embedded;
|
||||
import javax.persistence.EnumType;
|
||||
import javax.persistence.Enumerated;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.MappedSuperclass;
|
||||
import javax.persistence.Transient;
|
||||
@@ -118,20 +122,20 @@ public class DomainBase extends EppResource
|
||||
*
|
||||
* @invariant domainName == domainName.toLowerCase(Locale.ENGLISH)
|
||||
*/
|
||||
String domainName;
|
||||
@Expose String domainName;
|
||||
|
||||
/** The top level domain this is under, de-normalized from {@link #domainName}. */
|
||||
String tld;
|
||||
|
||||
/** References to hosts that are the nameservers for the domain. */
|
||||
@Transient Set<VKey<Host>> nsHosts;
|
||||
@Expose @Transient Set<VKey<Host>> nsHosts;
|
||||
|
||||
/** Contacts. */
|
||||
VKey<Contact> adminContact;
|
||||
@Expose VKey<Contact> adminContact;
|
||||
|
||||
VKey<Contact> billingContact;
|
||||
VKey<Contact> techContact;
|
||||
VKey<Contact> registrantContact;
|
||||
@Expose VKey<Contact> billingContact;
|
||||
@Expose VKey<Contact> techContact;
|
||||
@Expose VKey<Contact> registrantContact;
|
||||
|
||||
/** Authorization info (aka transfer secret) of the domain. */
|
||||
@Embedded
|
||||
@@ -172,10 +176,10 @@ public class DomainBase extends EppResource
|
||||
String idnTableName;
|
||||
|
||||
/** Fully qualified host names of this domain's active subordinate hosts. */
|
||||
Set<String> subordinateHosts;
|
||||
@Expose Set<String> subordinateHosts;
|
||||
|
||||
/** When this domain's registration will expire. */
|
||||
DateTime registrationExpirationTime;
|
||||
@Expose DateTime registrationExpirationTime;
|
||||
|
||||
/**
|
||||
* The poll message associated with this domain being deleted.
|
||||
@@ -227,7 +231,7 @@ public class DomainBase extends EppResource
|
||||
*
|
||||
* <p>Can be null if the resource has never been transferred.
|
||||
*/
|
||||
DateTime lastTransferTime;
|
||||
@Expose DateTime lastTransferTime;
|
||||
|
||||
/**
|
||||
* When the domain's autorenewal status will expire.
|
||||
@@ -247,34 +251,34 @@ public class DomainBase extends EppResource
|
||||
DateTime autorenewEndTime;
|
||||
|
||||
/**
|
||||
* When this domain's DNS was requested to be refreshed, or null if its DNS is up-to-date.
|
||||
* Which Lordn phase the domain is in after it is created but before the Nordn upload has
|
||||
* processed the domain.
|
||||
*
|
||||
* <p>This will almost always be null except in the couple of minutes' interval between when a
|
||||
* DNS-affecting create or update operation takes place and when the {@link RefreshDnsAction}
|
||||
* runs, which resets this back to null upon completion of the DNS refresh task. This is a {@link
|
||||
* DateTime} rather than a simple dirty boolean so that the DNS refresh action can order by the
|
||||
* DNS refresh request time and take action on the oldest ones first.
|
||||
* <p>This will almost always be {@code NONE} except in the interval between when a domain that
|
||||
* contains a signed mark or claims notice has been created, and when {@link NordnUploadAction}
|
||||
* runs, which includes the domain in the CSV uploaded to TMCH and sets this back to {@code NONE}.
|
||||
*
|
||||
* <p>Note that this is a Cloud SQL-based replacement for the {@code dns-pull} task queue. The
|
||||
* domains that have a non-null value for this field should be exactly the same as the tasks that
|
||||
* would be in the {@code dns-pull} queue.
|
||||
*
|
||||
* <p>Note that in the {@link DomainHistory} table this value means something slightly different:
|
||||
* It means that the given domain action requested a DNS update. Unlike on the {@code Domain}
|
||||
* table, this value is not then subsequently nulled out once the DNS refresh is complete; rather,
|
||||
* it remains as a permanent record of which actions were DNS-affecting and which were not.
|
||||
* <p>Note that in the {@code DomainHistory} table this value means something slightly different:
|
||||
* It means that the given domain was created with a signed mark ({@code SUNRISE} or a claims
|
||||
* notice ({@code CLAIMS}. Unlike on the {@code Domain} table, this value is not then subsequently
|
||||
* set back to {@code NONE} once the Nordn upload is complete; rather, it remains as a permanent
|
||||
* record of when which phase the domain is in when created.
|
||||
*/
|
||||
// TODO(mcilwain): Start using this field once we are further along in the DB migration.
|
||||
DateTime dnsRefreshRequestTime;
|
||||
@Enumerated(EnumType.STRING)
|
||||
LordnPhase lordnPhase = LordnPhase.NONE;
|
||||
|
||||
/** The {@link AllocationToken} for the package this domain is currently a part of. */
|
||||
@Nullable VKey<AllocationToken> currentPackageToken;
|
||||
|
||||
/**
|
||||
* Returns the DNS refresh request time iff this domain's DNS needs refreshing, otherwise absent.
|
||||
*/
|
||||
public Optional<DateTime> getDnsRefreshRequestTime() {
|
||||
return Optional.ofNullable(dnsRefreshRequestTime);
|
||||
public LordnPhase getLordnPhase() {
|
||||
return lordnPhase;
|
||||
}
|
||||
|
||||
@Access(AccessType.PROPERTY)
|
||||
@SuppressWarnings("unused")
|
||||
@Column(name = "dnsRefreshRequestTime")
|
||||
private DateTime getInternalDnsRefreshRequestTime() {
|
||||
return getDnsRefreshRequestTime().orElse(null);
|
||||
}
|
||||
|
||||
public ImmutableSet<String> getSubordinateHosts() {
|
||||
@@ -861,8 +865,8 @@ public class DomainBase extends EppResource
|
||||
return thisCastToDerived();
|
||||
}
|
||||
|
||||
public B setDnsRefreshRequestTime(Optional<DateTime> dnsRefreshRequestTime) {
|
||||
getInstance().dnsRefreshRequestTime = dnsRefreshRequestTime.orElse(null);
|
||||
public B setLordnPhase(LordnPhase lordnPhase) {
|
||||
getInstance().lordnPhase = lordnPhase;
|
||||
return thisCastToDerived();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,16 +16,22 @@ package google.registry.model.domain.token;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
import static com.google.common.collect.ImmutableMap.toImmutableMap;
|
||||
import static google.registry.config.RegistryConfig.getSingletonCacheRefreshDuration;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenStatus.CANCELLED;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenStatus.ENDED;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenStatus.NOT_STARTED;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenStatus.VALID;
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
import static google.registry.util.CollectionUtils.forceEmptyToNull;
|
||||
import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy;
|
||||
import static google.registry.util.PreconditionsUtils.checkArgumentNotNull;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.CacheLoader;
|
||||
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableMultimap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
@@ -34,6 +40,7 @@ import com.google.common.collect.Range;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.domain.DomainFlowUtils;
|
||||
import google.registry.model.Buildable;
|
||||
import google.registry.model.CacheUtils;
|
||||
import google.registry.model.CreateAutoTimestamp;
|
||||
import google.registry.model.UpdateAutoTimestampEntity;
|
||||
import google.registry.model.billing.BillingEvent.RenewalPriceBehavior;
|
||||
@@ -41,6 +48,7 @@ import google.registry.model.common.TimedTransitionProperty;
|
||||
import google.registry.model.reporting.HistoryEntry.HistoryEntryId;
|
||||
import google.registry.persistence.VKey;
|
||||
import google.registry.persistence.WithVKey;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import javax.annotation.Nullable;
|
||||
@@ -267,6 +275,39 @@ public class AllocationToken extends UpdateAutoTimestampEntity implements Builda
|
||||
return STATIC_TOKEN_BEHAVIORS.getOrDefault(token, TokenBehavior.DEFAULT);
|
||||
}
|
||||
|
||||
public static Optional<AllocationToken> get(VKey<AllocationToken> key) {
|
||||
return ALLOCATION_TOKENS_CACHE.get(key);
|
||||
}
|
||||
|
||||
public static Map<VKey<AllocationToken>, Optional<AllocationToken>> getAll(
|
||||
ImmutableList<VKey<AllocationToken>> keys) {
|
||||
return ALLOCATION_TOKENS_CACHE.getAll(keys);
|
||||
}
|
||||
|
||||
/** A cache that loads the {@link AllocationToken} object for a given AllocationToken VKey. */
|
||||
private static final LoadingCache<VKey<AllocationToken>, Optional<AllocationToken>>
|
||||
ALLOCATION_TOKENS_CACHE =
|
||||
CacheUtils.newCacheBuilder(getSingletonCacheRefreshDuration())
|
||||
.build(
|
||||
new CacheLoader<VKey<AllocationToken>, Optional<AllocationToken>>() {
|
||||
@Override
|
||||
public Optional<AllocationToken> load(VKey<AllocationToken> key) {
|
||||
return tm().transact(() -> tm().loadByKeyIfPresent(key));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<VKey<AllocationToken>, Optional<AllocationToken>> loadAll(
|
||||
Iterable<? extends VKey<AllocationToken>> keys) {
|
||||
ImmutableSet<VKey<AllocationToken>> keySet = ImmutableSet.copyOf(keys);
|
||||
return tm().transact(
|
||||
() ->
|
||||
keySet.stream()
|
||||
.collect(
|
||||
toImmutableMap(
|
||||
key -> key, key -> tm().loadByKeyIfPresent(key))));
|
||||
}
|
||||
});
|
||||
|
||||
@Override
|
||||
public VKey<AllocationToken> createVKey() {
|
||||
if (!AllocationToken.TokenBehavior.DEFAULT.equals(getTokenBehavior())) {
|
||||
|
||||
@@ -28,7 +28,7 @@ import javax.persistence.Table;
|
||||
/**
|
||||
* A persistable Host resource including mutable and non-mutable fields.
|
||||
*
|
||||
* <p>The {@link javax.persistence.Id} of the Host is the repoId.
|
||||
* <p>The {@link Id} of the Host is the repoId.
|
||||
*/
|
||||
@Entity(name = "Host")
|
||||
@Table(
|
||||
@@ -48,7 +48,8 @@ import javax.persistence.Table;
|
||||
@Index(columnList = "hostName"),
|
||||
@Index(columnList = "creationTime"),
|
||||
@Index(columnList = "deletionTime"),
|
||||
@Index(columnList = "currentSponsorRegistrarId")
|
||||
@Index(columnList = "currentSponsorRegistrarId"),
|
||||
@Index(columnList = "dnsRefreshRequestTime")
|
||||
})
|
||||
@ExternalMessagingName("host")
|
||||
@WithVKey(String.class)
|
||||
@@ -81,7 +82,7 @@ public class Host extends HostBase implements ForeignKeyedEppResource {
|
||||
}
|
||||
|
||||
public Builder copyFrom(HostBase hostBase) {
|
||||
return this.setCreationRegistrarId(hostBase.getCreationRegistrarId())
|
||||
return setCreationRegistrarId(hostBase.getCreationRegistrarId())
|
||||
.setCreationTime(hostBase.getCreationTime())
|
||||
.setDeletionTime(hostBase.getDeletionTime())
|
||||
.setHostName(hostBase.getHostName())
|
||||
@@ -93,6 +94,7 @@ public class Host extends HostBase implements ForeignKeyedEppResource {
|
||||
.setPersistedCurrentSponsorRegistrarId(hostBase.getPersistedCurrentSponsorRegistrarId())
|
||||
.setRepoId(hostBase.getRepoId())
|
||||
.setSuperordinateDomain(hostBase.getSuperordinateDomain())
|
||||
.setDnsRefreshRequestTime(hostBase.getDnsRefreshRequestTime())
|
||||
.setStatusValues(hostBase.getStatusValues());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import java.util.Set;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.persistence.Access;
|
||||
import javax.persistence.AccessType;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.persistence.MappedSuperclass;
|
||||
import org.joda.time.DateTime;
|
||||
@@ -85,6 +86,13 @@ public class HostBase extends EppResource {
|
||||
*/
|
||||
DateTime lastSuperordinateChange;
|
||||
|
||||
@Access(AccessType.PROPERTY)
|
||||
@SuppressWarnings("unused")
|
||||
@Column(name = "dnsRefreshRequestTime")
|
||||
private DateTime getInternalDnsRefreshRequestTime() {
|
||||
return getDnsRefreshRequestTime().orElse(null);
|
||||
}
|
||||
|
||||
public String getHostName() {
|
||||
return hostName;
|
||||
}
|
||||
|
||||
@@ -88,8 +88,7 @@ public class Lock extends ImmutableObject implements Serializable {
|
||||
* <p>See {@link RequestStatusCheckerImpl#getLogId} for details about how it's created in
|
||||
* practice.
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
String requestLogId;
|
||||
@Column String requestLogId;
|
||||
|
||||
/** When the lock can be considered implicitly released. */
|
||||
@Column(nullable = false)
|
||||
|
||||
@@ -25,6 +25,7 @@ import google.registry.monitoring.whitebox.WhiteboxModule;
|
||||
import google.registry.request.RequestComponentBuilder;
|
||||
import google.registry.request.RequestModule;
|
||||
import google.registry.request.RequestScope;
|
||||
import google.registry.ui.server.console.ConsoleDomainGetAction;
|
||||
import google.registry.ui.server.registrar.ConsoleOteSetupAction;
|
||||
import google.registry.ui.server.registrar.ConsoleRegistrarCreatorAction;
|
||||
import google.registry.ui.server.registrar.ConsoleUiAction;
|
||||
@@ -61,6 +62,8 @@ interface FrontendRequestComponent {
|
||||
|
||||
RegistryLockVerifyAction registryLockVerifyAction();
|
||||
|
||||
ConsoleDomainGetAction consoleDomainGetAction();
|
||||
|
||||
@Subcomponent.Builder
|
||||
abstract class Builder implements RequestComponentBuilder<FrontendRequestComponent> {
|
||||
@Override public abstract Builder requestModule(RequestModule requestModule);
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import google.registry.model.EppResource;
|
||||
import google.registry.model.ImmutableObject;
|
||||
import google.registry.model.contact.Contact;
|
||||
@@ -52,7 +53,7 @@ public class VKey<T> extends ImmutableObject implements Serializable {
|
||||
.collect(toImmutableMap(Class::getSimpleName, identity()));
|
||||
|
||||
// The primary key for the referenced entity.
|
||||
Serializable key;
|
||||
@Expose Serializable key;
|
||||
|
||||
Class<? extends T> kind;
|
||||
|
||||
|
||||
@@ -15,10 +15,7 @@
|
||||
package google.registry.reporting.billing;
|
||||
|
||||
import static google.registry.beam.BeamUtils.createJobName;
|
||||
import static google.registry.model.common.Cursor.CursorType.RECURRING_BILLING;
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
import static google.registry.request.Action.Method.POST;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_OK;
|
||||
|
||||
@@ -32,7 +29,6 @@ import com.google.common.flogger.FluentLogger;
|
||||
import com.google.common.net.MediaType;
|
||||
import google.registry.config.RegistryConfig.Config;
|
||||
import google.registry.config.RegistryEnvironment;
|
||||
import google.registry.model.common.Cursor;
|
||||
import google.registry.persistence.PersistenceModule;
|
||||
import google.registry.reporting.ReportingModule;
|
||||
import google.registry.request.Action;
|
||||
@@ -44,7 +40,6 @@ import google.registry.util.Clock;
|
||||
import google.registry.util.CloudTasksUtils;
|
||||
import java.io.IOException;
|
||||
import javax.inject.Inject;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.Duration;
|
||||
import org.joda.time.YearMonth;
|
||||
|
||||
@@ -113,19 +108,6 @@ public class GenerateInvoicesAction implements Runnable {
|
||||
response.setContentType(MediaType.PLAIN_TEXT_UTF_8);
|
||||
logger.atInfo().log("Launching invoicing pipeline for %s.", yearMonth);
|
||||
try {
|
||||
DateTime currentCursorTime =
|
||||
tm().transact(
|
||||
() ->
|
||||
tm().loadByKeyIfPresent(Cursor.createGlobalVKey(RECURRING_BILLING))
|
||||
.orElse(Cursor.createGlobal(RECURRING_BILLING, START_OF_TIME))
|
||||
.getCursorTime());
|
||||
|
||||
if (!YearMonth.fromDateFields(currentCursorTime.toDate()).isAfter(yearMonth)) {
|
||||
throw new IllegalStateException(
|
||||
"Latest billing events expansion cycle hasn't finished yet, terminating invoicing"
|
||||
+ " pipeline");
|
||||
}
|
||||
|
||||
LaunchFlexTemplateParameter parameter =
|
||||
new LaunchFlexTemplateParameter()
|
||||
.setJobName(createJobName("invoicing", clock))
|
||||
|
||||
@@ -49,7 +49,6 @@ U+011F # LATIN SMALL LETTER G WITH BREVE
|
||||
U+01E7 # LATIN SMALL LETTER G WITH CARON
|
||||
U+0121 # LATIN SMALL LETTER G WITH DOT ABOVE
|
||||
U+0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
U+01E5 # LATIN SMALL LETTER G WITH STROKE
|
||||
U+0068 # LATIN SMALL LETTER H
|
||||
U+0127 # LATIN SMALL LETTER H WITH STROKE
|
||||
U+0069 # LATIN SMALL LETTER I
|
||||
|
||||
@@ -38,10 +38,11 @@ public final class LordnTaskUtils {
|
||||
|
||||
public static final String QUEUE_SUNRISE = "lordn-sunrise";
|
||||
public static final String QUEUE_CLAIMS = "lordn-claims";
|
||||
public static final String COLUMNS_CLAIMS = "roid,domain-name,notice-id,registrar-id,"
|
||||
+ "registration-datetime,ack-datetime,application-datetime";
|
||||
public static final String COLUMNS_SUNRISE = "roid,domain-name,SMD-id,registrar-id,"
|
||||
+ "registration-datetime,application-datetime";
|
||||
public static final String COLUMNS_CLAIMS =
|
||||
"roid,domain-name,notice-id,registrar-id,"
|
||||
+ "registration-datetime,ack-datetime,application-datetime";
|
||||
public static final String COLUMNS_SUNRISE =
|
||||
"roid,domain-name,SMD-id,registrar-id," + "registration-datetime,application-datetime";
|
||||
|
||||
/** Enqueues a task in the LORDN queue representing a line of CSV for LORDN export. */
|
||||
public static void enqueueDomainTask(Domain domain) {
|
||||
@@ -50,15 +51,17 @@ public final class LordnTaskUtils {
|
||||
// isn't yet populated when this method is called during the resource flow.
|
||||
String tld = domain.getTld();
|
||||
if (domain.getLaunchNotice() == null) {
|
||||
getQueue(QUEUE_SUNRISE).add(TaskOptions.Builder
|
||||
.withTag(tld)
|
||||
.method(Method.PULL)
|
||||
.payload(getCsvLineForSunriseDomain(domain, tm().getTransactionTime())));
|
||||
getQueue(QUEUE_SUNRISE)
|
||||
.add(
|
||||
TaskOptions.Builder.withTag(tld)
|
||||
.method(Method.PULL)
|
||||
.payload(getCsvLineForSunriseDomain(domain, tm().getTransactionTime())));
|
||||
} else {
|
||||
getQueue(QUEUE_CLAIMS).add(TaskOptions.Builder
|
||||
.withTag(tld)
|
||||
.method(Method.PULL)
|
||||
.payload(getCsvLineForClaimsDomain(domain, tm().getTransactionTime())));
|
||||
getQueue(QUEUE_CLAIMS)
|
||||
.add(
|
||||
TaskOptions.Builder.withTag(tld)
|
||||
.method(Method.PULL)
|
||||
.payload(getCsvLineForClaimsDomain(domain, tm().getTransactionTime())));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,4 +98,18 @@ public final class LordnTaskUtils {
|
||||
}
|
||||
|
||||
private LordnTaskUtils() {}
|
||||
|
||||
public enum LordnPhase {
|
||||
SUNRISE(QUEUE_SUNRISE),
|
||||
|
||||
CLAIMS(QUEUE_CLAIMS),
|
||||
|
||||
NONE(null);
|
||||
|
||||
final String queue;
|
||||
|
||||
LordnPhase(String queue) {
|
||||
this.queue = queue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,8 +27,10 @@ import org.bouncycastle.openpgp.bc.BcPGPPublicKeyRing;
|
||||
/** Helper class for common data loaded from the jar and SQL at runtime. */
|
||||
public final class TmchData {
|
||||
|
||||
private static final String BEGIN_ENCODED_SMD = "-----BEGIN ENCODED SMD-----";
|
||||
private static final String END_ENCODED_SMD = "-----END ENCODED SMD-----";
|
||||
static final String BEGIN_ENCODED_SMD = "-----BEGIN ENCODED SMD-----";
|
||||
static final String END_ENCODED_SMD = "-----END ENCODED SMD-----";
|
||||
|
||||
private TmchData() {}
|
||||
|
||||
static PGPPublicKey loadPublicKey(ByteSource pgpPublicKeyFile) {
|
||||
try (InputStream input = pgpPublicKeyFile.openStream();
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEVjCCAz6gAwIBAgIgLrAbevoae52y3f6C2tB0Sn3p7XJm0T02FogxKCfNhXkw
|
||||
DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxPDA6BgNVBAoTM0ludGVybmV0
|
||||
IENvcnBvcmF0aW9uIGZvciBBc3NpZ25lZCBOYW1lcyBhbmQgTnVtYmVyczEvMC0G
|
||||
A1UEAxMmSUNBTk4gVHJhZGVtYXJrIENsZWFyaW5naG91c2UgUGlsb3QgQ0EwHhcN
|
||||
MTMwNjI2MDAwMDAwWhcNMjMwNjI1MjM1OTU5WjB8MQswCQYDVQQGEwJVUzE8MDoG
|
||||
A1UEChMzSW50ZXJuZXQgQ29ycG9yYXRpb24gZm9yIEFzc2lnbmVkIE5hbWVzIGFu
|
||||
ZCBOdW1iZXJzMS8wLQYDVQQDEyZJQ0FOTiBUcmFkZW1hcmsgQ2xlYXJpbmdob3Vz
|
||||
ZSBQaWxvdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJiRqFg
|
||||
iCoDF8zMJMKHPMEuSpjbEl9ZWII+1WawDyt+jw841HsTT+6MwZsqExbQvukgvnuS
|
||||
lA3Rg3xTFxodMaVZWsVQJy2PXGHVFRLnCp05DYZsMGZabuN9mIekYwtjePo89Lz0
|
||||
JtU3ibL3squGG3gg6TLtPjks7Txm18BYPOYLznui32GUz+1aIZuk2p5A/rSldsh3
|
||||
bke68IX5WZhKuIxT0+BjS8yfLWI0HCUs71WVxzvlJ1v22/eMK0WEA6+ZhCbOKIav
|
||||
VtGNJrwIYwhZmxqfiR1HzHTLvrV0SLlJ2bwNk/yzKm8IJfuFezQ5BBtQ2RS9opFX
|
||||
X8ft3v+uQQQvi+MCAwEAAaOBwzCBwDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1Ud
|
||||
DgQWBBTDrT6m1hEARYBcOldKim3cMQ2ecTAOBgNVHQ8BAf8EBAMCAQYwNAYDVR0f
|
||||
BC0wKzApoCegJYYjaHR0cDovL2NybC5pY2Fubi5vcmcvdG1jaF9waWxvdC5jcmww
|
||||
RQYDVR0gBD4wPDA6BgMqAwQwMzAxBggrBgEFBQcCARYlaHR0cDovL3d3dy5pY2Fu
|
||||
bi5vcmcvcGlsb3RfcmVwb3NpdG9yeTANBgkqhkiG9w0BAQsFAAOCAQEAKUfEJ5X6
|
||||
QAttajjRVseJFQxRXGHTgCaDk8C/1nj1ielZAuZtgdUpWDUr0NnGCi+LHSsgdTYR
|
||||
+vMrxir7EVYQevrBobELkxeTEfjF9FVqjBHInyPFLOFkz15zGG2IwPJps+vhAd/7
|
||||
gT0ph1k2FEkJFGL5LwRf1ms4IX0vDkxTIX8Qxy1jczCiSsoV8pwlhh2NHAkpGQWN
|
||||
/pTS0Uqi7uU5Bm/IoGvPBzUp5n5SjUMnTZx/+1zAuerSabt483sXBcWsjgl7MqFt
|
||||
fONiAtNeMNfh60lTMu4zgVwLZTO4TQM5Q2uylPPmZtwnA88QvM2IL85cIYJHd0z9
|
||||
jpUQMBGHXF2WQA==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,13 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIB8DCB2QIBATANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJVUzE8MDoGA1UE
|
||||
ChMzSW50ZXJuZXQgQ29ycG9yYXRpb24gZm9yIEFzc2lnbmVkIE5hbWVzIGFuZCBO
|
||||
dW1iZXJzMSkwJwYDVQQDEyBJQ0FOTiBUcmFkZW1hcmsgQ2xlYXJpbmdob3VzZSBD
|
||||
QRcNMTgwMzAxMDAwMDAwWhcNMTgxMDA3MjM1OTU5WqAvMC0wHwYDVR0jBBgwFoAU
|
||||
XMDxlizKTFsp8UB00xs2PkfUbgQwCgYDVR0UBAMCAQswDQYJKoZIhvcNAQELBQAD
|
||||
ggEBAGhvQtqENy2Ga+nGg6kZRCzEWKy481v111Iycku/qL5aUlqSL5BkQst2Czaq
|
||||
xdKRSxKHkMaTChoezSaw5huOTd0prdSXVHPg/tmjxyuuS2pqWpuAICkrG06FgXgh
|
||||
AG5YCHt2DvCjeA9F3TMmbOkCMILQ/x+vsyg6Yv4Oiz8rFbFcUMntUKSrymt4dKpk
|
||||
S78CTkHH/3M3YNxZCo8JPwaQohC3Rck4M30Pg8C0qC9jjSrudA6hCa4223U6aZwC
|
||||
Kz3LNXdkqGWlDJPTf0YWwnT4ZyO7KKXVuEbPzg187htz3Jcr6b0x1UUoHGAkOv7i
|
||||
W4IwhPbUJ14/7pUuUef6airQUw8=
|
||||
-----END X509 CRL-----
|
||||
@@ -1,25 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEQjCCAyqgAwIBAgIhAJNCMqhNjz3cXVJPj7yvcZvro1FKQR+dTC6tXazem5g+
|
||||
MA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYTAlVTMTwwOgYDVQQKEzNJbnRlcm5l
|
||||
dCBDb3Jwb3JhdGlvbiBmb3IgQXNzaWduZWQgTmFtZXMgYW5kIE51bWJlcnMxKTAn
|
||||
BgNVBAMTIElDQU5OIFRyYWRlbWFyayBDbGVhcmluZ2hvdXNlIENBMB4XDTEzMDcy
|
||||
NDAwMDAwMFoXDTIzMDcyMzIzNTk1OVowdjELMAkGA1UEBhMCVVMxPDA6BgNVBAoT
|
||||
M0ludGVybmV0IENvcnBvcmF0aW9uIGZvciBBc3NpZ25lZCBOYW1lcyBhbmQgTnVt
|
||||
YmVyczEpMCcGA1UEAxMgSUNBTk4gVHJhZGVtYXJrIENsZWFyaW5naG91c2UgQ0Ew
|
||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5MX6qpRnqFzEXa9w3G0b8
|
||||
LTEVZzpOpcSq2BXJO16+iuZ964mpay2hm2BdZk89hSmZhUy2ePBR6PdS0GMmzzXL
|
||||
NiyTHJlDIPxxXTR39Iqs8QChJ8wle4pYUu8JUk2vJ0r7PhFweeCCQZ5gvHdCwopS
|
||||
bXeolj4NCqsvzU8iROsLRHSZbE83i2pkL+qBoyzjny9MO2rvMNPo5WrDNrno6hvC
|
||||
hlf8Pv77HTNCazI2MeW0ArfLin4pSe6nLnDsQA11SF9bbgwDgVMQFvmB8nEvUbZW
|
||||
Atnp3auaWqaylC+G0p3frFvMCUJMPrghiPwBABl3bk1GLjXXVl7D8SubKd2Xwv63
|
||||
AgMBAAGjgbowgbcwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUXMDxlizK
|
||||
TFsp8UB00xs2PkfUbgQwDgYDVR0PAQH/BAQDAgEGMC4GA1UdHwQnMCUwI6AhoB+G
|
||||
HWh0dHA6Ly9jcmwuaWNhbm4ub3JnL3RtY2guY3JsMEIGA1UdIAQ7MDkwBgYEVR0g
|
||||
ADAvBggrBgEFBQcCATAjMCEGCCsGAQUFBwIBFhVodHRwczovL2NhLmljYW5uLm9y
|
||||
Zy8wDQYJKoZIhvcNAQELBQADggEBAAM29FBdwQSAx8dD4ZYtCYjXxTonNCP2qveG
|
||||
wrpMJcq/I3Jp/N4etsnj+K5ej5sSlDuo8sTMF7lgMkgjrc6zgJl0+Gct2RhbRNzN
|
||||
5ittE9JwJZ3Us4vwiy6gqMO5Ie9YaKMZy2MYP2iFp6AhBKIc2Iz+8aFfnFzdSEx2
|
||||
b3xc+t1A09dzpnzU6zvHWUUkTYq9fTg1er1npni9ZErvp0jEyHVWi5GXvWap68XH
|
||||
pVF6TBmPW2UBEEnFgd3SxbMXLhaD/wzV12tlSYjxaNed+H5qbVVbSVwN9yBeWU29
|
||||
/pkZu79TqFFxTd4CJTWOBq0+yLO1Ts2ZZ1l+GgU6e3hI1XERSNc=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -18,9 +18,11 @@ import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.collect.ImmutableSet.toImmutableSet;
|
||||
import static com.google.common.collect.Sets.difference;
|
||||
import static google.registry.model.billing.BillingEvent.RenewalPriceBehavior.DEFAULT;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.PACKAGE;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.SINGLE_USE;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.UNLIMITED_USE;
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
import static google.registry.util.CollectionUtils.isNullOrEmpty;
|
||||
import static google.registry.util.CollectionUtils.nullToEmpty;
|
||||
import static google.registry.util.StringGenerator.DEFAULT_PASSWORD_LENGTH;
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
@@ -253,6 +255,22 @@ class GenerateAllocationTokensCommand implements Command {
|
||||
!ImmutableList.of("").equals(allowedTlds),
|
||||
"Either omit --allowed_tlds if all TLDs are allowed, or include a comma-separated list");
|
||||
|
||||
if (!isNullOrEmpty(tokenStatusTransitions)) {
|
||||
// Don't allow package tokens to be created with a scheduled end time since this could allow
|
||||
// future domains to be attributed to the package and never be billed. Package promotion
|
||||
// tokens should only be scheduled to end with a brief time period before the status
|
||||
// transition occurs so that no new domains are registered using that token between when the
|
||||
// status is scheduled and when the transition occurs.
|
||||
// TODO(@sarahbot): Create a cleaner way to handle ending packages once we actually have
|
||||
// customers using them
|
||||
boolean hasEnding =
|
||||
tokenStatusTransitions.containsValue(TokenStatus.ENDED)
|
||||
|| tokenStatusTransitions.containsValue(TokenStatus.CANCELLED);
|
||||
checkArgument(
|
||||
!(PACKAGE.equals(tokenType) && hasEnding),
|
||||
"PACKAGE tokens should not be generated with ENDED or CANCELLED in their transition map");
|
||||
}
|
||||
|
||||
if (tokenStrings != null) {
|
||||
verifyTokenStringsDoNotExist();
|
||||
}
|
||||
|
||||
@@ -69,14 +69,15 @@ class RequestFactoryModule {
|
||||
return new NetHttpTransport()
|
||||
.createRequestFactory(
|
||||
request -> {
|
||||
// Use the standard credential initializer to set the Authorization header
|
||||
credentialsBundle.getHttpRequestInitializer().initialize(request);
|
||||
// If using IAP, use the refresh token to acquire an IAP-enabled ID token and use
|
||||
// that for authentication.
|
||||
if (iapClientId.isPresent()) {
|
||||
String idToken = getIdToken(credentialsBundle, iapClientId.get());
|
||||
request.getHeaders().setAuthorization("Bearer " + idToken);
|
||||
} else {
|
||||
// Otherwise, use the standard credential HTTP initializer
|
||||
credentialsBundle.getHttpRequestInitializer().initialize(request);
|
||||
// Set the Proxy-Authentication header so that IAP can read from it, see
|
||||
// https://cloud.google.com/iap/docs/authentication-howto#authenticating_from_proxy-authorization_header
|
||||
request.getHeaders().set("Proxy-Authorization", "Bearer " + idToken);
|
||||
}
|
||||
// GAE request times out after 10 min, so here we set the timeout to 10 min. This is
|
||||
// needed to support some nomulus commands like updating premium lists that take
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
package google.registry.tools;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.collect.ImmutableMap.toImmutableMap;
|
||||
import static com.google.common.collect.ImmutableSet.toImmutableSet;
|
||||
import static com.google.common.collect.Iterables.partition;
|
||||
@@ -31,6 +32,7 @@ import google.registry.model.billing.BillingEvent.RenewalPriceBehavior;
|
||||
import google.registry.model.domain.token.AllocationToken;
|
||||
import google.registry.model.domain.token.AllocationToken.RegistrationBehavior;
|
||||
import google.registry.model.domain.token.AllocationToken.TokenStatus;
|
||||
import google.registry.model.domain.token.AllocationToken.TokenType;
|
||||
import google.registry.tools.params.TransitionListParameter.TokenStatusTransitions;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -114,6 +116,7 @@ final class UpdateAllocationTokensCommand extends UpdateOrDeleteAllocationTokens
|
||||
private static final Joiner JOINER = Joiner.on(", ");
|
||||
|
||||
private ImmutableSet<AllocationToken> tokensToSave;
|
||||
private boolean endToken = false;
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
@@ -126,6 +129,12 @@ final class UpdateAllocationTokensCommand extends UpdateOrDeleteAllocationTokens
|
||||
allowedTlds = ImmutableList.of();
|
||||
}
|
||||
|
||||
if (tokenStatusTransitions != null
|
||||
&& (tokenStatusTransitions.containsValue(TokenStatus.ENDED)
|
||||
|| tokenStatusTransitions.containsValue(TokenStatus.CANCELLED))) {
|
||||
endToken = true;
|
||||
}
|
||||
|
||||
tokensToSave =
|
||||
tm().transact(
|
||||
() ->
|
||||
@@ -157,6 +166,19 @@ final class UpdateAllocationTokensCommand extends UpdateOrDeleteAllocationTokens
|
||||
}
|
||||
|
||||
private AllocationToken updateToken(AllocationToken original) {
|
||||
if (endToken && original.getTokenType().equals(TokenType.PACKAGE)) {
|
||||
Long domainsInPackage =
|
||||
tm().query("SELECT COUNT(*) FROM Domain WHERE currentPackageToken = :token", Long.class)
|
||||
.setParameter("token", original.createVKey())
|
||||
.getSingleResult();
|
||||
|
||||
checkArgument(
|
||||
domainsInPackage == 0,
|
||||
"Package token %s can not end its promotion because it still has %s domains in the"
|
||||
+ " package",
|
||||
original.getToken(),
|
||||
domainsInPackage);
|
||||
}
|
||||
AllocationToken.Builder builder = original.asBuilder();
|
||||
Optional.ofNullable(allowedClientIds)
|
||||
.ifPresent(clientIds -> builder.setAllowedRegistrarIds(ImmutableSet.copyOf(clientIds)));
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
// Copyright 2023 The Nomulus Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed 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 google.registry.ui.server.console;
|
||||
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
|
||||
import com.google.api.client.http.HttpStatusCodes;
|
||||
import com.google.gson.Gson;
|
||||
import google.registry.model.EppResourceUtils;
|
||||
import google.registry.model.console.ConsolePermission;
|
||||
import google.registry.model.console.User;
|
||||
import google.registry.model.domain.Domain;
|
||||
import google.registry.request.Action;
|
||||
import google.registry.request.Parameter;
|
||||
import google.registry.request.Response;
|
||||
import google.registry.request.auth.Auth;
|
||||
import google.registry.request.auth.AuthResult;
|
||||
import google.registry.request.auth.UserAuthInfo;
|
||||
import google.registry.ui.server.registrar.JsonGetAction;
|
||||
import java.util.Optional;
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** Returns a JSON representation of a domain to the registrar console. */
|
||||
@Action(
|
||||
service = Action.Service.DEFAULT,
|
||||
path = ConsoleDomainGetAction.PATH,
|
||||
auth = Auth.AUTH_PUBLIC_LOGGED_IN)
|
||||
public class ConsoleDomainGetAction implements JsonGetAction {
|
||||
|
||||
public static final String PATH = "/console-api/domain";
|
||||
|
||||
private final AuthResult authResult;
|
||||
private final Response response;
|
||||
private final Gson gson;
|
||||
private final String paramDomain;
|
||||
|
||||
@Inject
|
||||
public ConsoleDomainGetAction(
|
||||
AuthResult authResult,
|
||||
Response response,
|
||||
Gson gson,
|
||||
@Parameter("domain") String paramDomain) {
|
||||
this.authResult = authResult;
|
||||
this.response = response;
|
||||
this.gson = gson;
|
||||
this.paramDomain = paramDomain;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (!authResult.isAuthenticated() || !authResult.userAuthInfo().isPresent()) {
|
||||
response.setStatus(HttpStatusCodes.STATUS_CODE_UNAUTHORIZED);
|
||||
return;
|
||||
}
|
||||
UserAuthInfo authInfo = authResult.userAuthInfo().get();
|
||||
if (!authInfo.consoleUser().isPresent()) {
|
||||
response.setStatus(HttpStatusCodes.STATUS_CODE_UNAUTHORIZED);
|
||||
return;
|
||||
}
|
||||
User user = authInfo.consoleUser().get();
|
||||
Optional<Domain> possibleDomain =
|
||||
tm().transact(
|
||||
() ->
|
||||
EppResourceUtils.loadByForeignKeyCached(
|
||||
Domain.class, paramDomain, tm().getTransactionTime()));
|
||||
if (!possibleDomain.isPresent()) {
|
||||
response.setStatus(HttpStatusCodes.STATUS_CODE_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
Domain domain = possibleDomain.get();
|
||||
if (!user.getUserRoles()
|
||||
.hasPermission(domain.getCurrentSponsorRegistrarId(), ConsolePermission.DOWNLOAD_DOMAINS)) {
|
||||
response.setStatus(HttpStatusCodes.STATUS_CODE_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
response.setStatus(HttpStatusCodes.STATUS_CODE_OK);
|
||||
response.setPayload(gson.toJson(domain));
|
||||
}
|
||||
}
|
||||
@@ -156,4 +156,10 @@ public final class RegistrarConsoleModule {
|
||||
static Boolean provideIsLock(HttpServletRequest req) {
|
||||
return extractBooleanParameter(req, "isLock");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Parameter("domain")
|
||||
static String provideDomain(HttpServletRequest req) {
|
||||
return extractRequiredParameter(req, "domain");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,12 +23,6 @@
|
||||
"helpText": "The exclusive upper bound of the operation window, in ISO 8601 format.",
|
||||
"is_optional": false
|
||||
},
|
||||
{
|
||||
"name": "shard",
|
||||
"label": "The exclusive upper bound of the operation window.",
|
||||
"helpText": "The exclusive upper bound of the operation window, in ISO 8601 format.",
|
||||
"is_optional": true
|
||||
},
|
||||
{
|
||||
"name": "isDryRun",
|
||||
"label": "Whether this job is a dry run.",
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIDLjCCARYCAQEwDQYJKoZIhvcNAQENBQAwfDELMAkGA1UEBhMCVVMxPDA6BgNV
|
||||
BAoMM0ludGVybmV0IENvcnBvcmF0aW9uIGZvciBBc3NpZ25lZCBOYW1lcyBhbmQg
|
||||
TnVtYmVyczEvMC0GA1UEAwwmSUNBTk4gVHJhZGVtYXJrIENsZWFyaW5naG91c2Ug
|
||||
UGlsb3QgQ0EXDTIyMTExNjEzMzIyN1oXDTIzMDQwNjEzMzIyN1owNTAzAhQc4zug
|
||||
SmVXTpNkiBlOLRFSS6qBnhcNMjIxMTE2MTMzMjI3WjAMMAoGA1UdFQQDCgEAoC8w
|
||||
LTAfBgNVHSMEGDAWgBRHe0+uelGRtdG/nTbphn82FgSpRTAKBgNVHRQEAwIBATAN
|
||||
BgkqhkiG9w0BAQ0FAAOCAgEAD5pxGf7W2nxnCyoMhhRWclaBrY2VF+lYitpQdUIA
|
||||
Li3nhCXDiXwHWNtiyGjKaWJFsCFAph0EejKTR1iHh/7t7fZ5T2KhiqyREGGs2VT5
|
||||
AXTWTDZUdGtobmc9xmXowzF7YUWoZZenj1AwUt0/tDKth1ieZvoRWEKJ+0YCpIDQ
|
||||
LyfJKBFM6NEyrYiKu1szcdT7+Meii4M8ulYHkUXEJXQBN5+LuESkRrqach6n6zSS
|
||||
urvCG2I0ijqVj36TudwRrYU+sCpk8XR6//XyJbcjW5vuUd1/uYrJ+lSZCPaKfjIo
|
||||
gLKK1UJ9wLZbg28Hqtb5KxYsLtlzMsNFCbVebatl6QdS+J4OaCGLE4SM2NnsheN/
|
||||
qxErMS1eAzNVgpW+yY4JV47k54HDBZfgHmgA8lgyShn7w08dA2mWIYbmbKHcnh2N
|
||||
QSQ5wjYbTEy3a251t32pR76W5k/uduoMXestJEXD7yViMz3pFzu97l1huAP8C0Hs
|
||||
sMEysMomthMQChqNUZw19wakdxuCyiU+YrL7bHTTL2pAKYB0AKOGE1XgecnneC89
|
||||
+K5vr5TUTWOpksUeuM5Oq2YYLicYuES1Nr/5GkszNCCY0J+fBL50AI0IItrfFjt1
|
||||
Xu/mlbiJKQZXMppWfLJUhu/8Ur1VYeYLeCNR3ju7jfvm3DkVzmqSc0b01uz5POTz
|
||||
Hak=
|
||||
-----END X509 CRL-----
|
||||
@@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF7DCCA9SgAwIBAgIUemptMV4lw+1QL1e648o+wvANH4wwDQYJKoZIhvcNAQEN
|
||||
BQAwfDELMAkGA1UEBhMCVVMxPDA6BgNVBAoMM0ludGVybmV0IENvcnBvcmF0aW9u
|
||||
IGZvciBBc3NpZ25lZCBOYW1lcyBhbmQgTnVtYmVyczEvMC0GA1UEAwwmSUNBTk4g
|
||||
VHJhZGVtYXJrIENsZWFyaW5naG91c2UgUGlsb3QgQ0EwHhcNMjIxMTE1MTg1MDA5
|
||||
WhcNNDIxMTE1MTg1MDA5WjB8MQswCQYDVQQGEwJVUzE8MDoGA1UECgwzSW50ZXJu
|
||||
ZXQgQ29ycG9yYXRpb24gZm9yIEFzc2lnbmVkIE5hbWVzIGFuZCBOdW1iZXJzMS8w
|
||||
LQYDVQQDDCZJQ0FOTiBUcmFkZW1hcmsgQ2xlYXJpbmdob3VzZSBQaWxvdCBDQTCC
|
||||
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQQS8gSAw6fsyqP+yWvfOtU
|
||||
D2hCe/RvbKMG6cJ6yuCMscxIEPT0xrVTkGfzG8b6T4j8iD9mVHDxO19z+y0ALog/
|
||||
IPeVLw/x/2QC5YTDlrQtbsT33BN+NFdp13mE324owiyVyYrPqN1B6MtdERQLkIFU
|
||||
PIlhTopHfnMtRNzwt2gPpNwy2q5lqK20dKzrG9W1kLd26nFfnN5T9fnv21TtBhSJ
|
||||
73qfoU8GuOZhytloJRmT/yvvZNH1JTHyvuG15Q6kDDf46E1d6PO1+tmBQnNIZBfp
|
||||
FALrqN1QX1znaHkd1smgLEC1JV/2iAOtxNUL0d1vJcQfmjHXBtMF8Yx1ulpJjN1c
|
||||
A6iLMJfO5znd8jQ9O6hkMUjYNRz+XTGHiCTZVkhlNeJiIQbBlILbsnuT4Q+Ywxu+
|
||||
83W/ymqq/G2tIJdqXapUGEulYw/09y0TMyMnkA0VO9eDNf/B1AaQxBCEhpP6OufR
|
||||
G/nEzbH/SknVhgeV8CkhZo4UeFOx5XFZVj1Y3vBsqVwQYTc0NG84Bv3HD6sDXQd0
|
||||
DtW0gjqXg2caxQBoX8F40MCkik5TvnOT8RawvWKJjakEKSgeMceu9LnjRgFk+96Z
|
||||
ig1vGVJi213rUgSv7oXcO3HgraHOLkzkMglqOBh7NrUnEdCrrDGKYZwxZ/46cofY
|
||||
yyOb+9y/UOWa8MWvoam7AgMBAAGjZjBkMB0GA1UdDgQWBBRHe0+uelGRtdG/nTbp
|
||||
hn82FgSpRTAfBgNVHSMEGDAWgBRHe0+uelGRtdG/nTbphn82FgSpRTASBgNVHRMB
|
||||
Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQ0FAAOCAgEA
|
||||
ElXV35T8rG25yyGzNTgI9lDntDy2D0c/WSPPn9LZQREddKEpMBSy8pztHLJurH7B
|
||||
uKeb+j0KXw+0IMG5ZKxacUbLlW8NGIXqBRkRiDfBDw374dsLIeB7Gb3PKMWsnvg5
|
||||
zZic/iW7Wrrur6xAjFsgFMz8KRuNseGFDZi3UF1O4xX6Wy2KV5HMvvbnzyQa4bN9
|
||||
mbnCEf8tVXws2ZWC4e7yEkbLFqDh5czujVGq+g8VEl82wFTn0s+u6roI3vCrqZN9
|
||||
Qh2/yOzhpnu+daDcIUqb8keNNIswE7n9A9Yl40xNfzZid8bP4fJXM2oVcXxqUnsD
|
||||
Khwk9wgk30XVuKokoWYB3ExAVTYeR6j3jZPpDp3wYHXV23hgexPykKSE/7TMByII
|
||||
K1egDjKLdUlReQ5Rca48IRRAa6f4igJoaSvmp3eEF4lmxgXMhHIDocUN0hVDDaPb
|
||||
WGkr+sChXtftIUVhE2bi746dNhiBLWWPz8FX/uZzD1srJA8kPmf8YWdH2d6yJ8BN
|
||||
2olV7QpDRpmCJwblyzLLeNWCQiwHQNN4MvtxJFFFZQfF6m6A6bZ5CKNM5GvJanRl
|
||||
/aS1ehO/DhOkcGelxAjMtTPqKhI1j+SBZqPdumrQDFhfHN/sM9F4g+I8datpu/2P
|
||||
Dop0Ki70evaFhD8jVE4z0zt59OUzEHjezWOTNoYU9GU=
|
||||
-----END CERTIFICATE-----
|
||||
18
core/src/main/resources/google/registry/tmch/icann-tmch.crl
Normal file
18
core/src/main/resources/google/registry/tmch/icann-tmch.crl
Normal file
@@ -0,0 +1,18 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIC8DCB2QIBATANBgkqhkiG9w0BAQ0FADB2MQswCQYDVQQGEwJVUzE8MDoGA1UE
|
||||
CgwzSW50ZXJuZXQgQ29ycG9yYXRpb24gZm9yIEFzc2lnbmVkIE5hbWVzIGFuZCBO
|
||||
dW1iZXJzMSkwJwYDVQQDDCBJQ0FOTiBUcmFkZW1hcmsgQ2xlYXJpbmdob3VzZSBD
|
||||
QRcNMjIxMTE2MTMyNzU3WhcNMjMwNDA2MTMyNzU3WqAvMC0wHwYDVR0jBBgwFoAU
|
||||
P/RCC1aVjbgjAjp0MnrSEivX8cYwCgYDVR0UBAMCAQEwDQYJKoZIhvcNAQENBQAD
|
||||
ggIBAJkrxahXQDaniHHE+8/3GVSlXz2175xVfZ/zqq3twatKd4FWxXD5sr42595Z
|
||||
5T9EP5XFii5o/j49qM6a+Qc3V++LEcTj+VHFxvhG2czYhiuZXzFu1WmdmtSCe2+C
|
||||
9N7DgGl9VNRg14DKWoW5BPdmgy6/XZCEcxlQ6ft/caZ8G9pR+Q5i9rwCXDFXB1ni
|
||||
kIuMKnp5rq95GzF8WnbEGfM0s5YY/UfSozF35oPGtRSyCWdGoTmmpnp3DXMvElMW
|
||||
wMxtCRhdhxsS6YzeCPiORTzq08IiCJcVpud5ZdDdKzja1tF8iSc5MnMJ0pygT4ds
|
||||
uZOHmj8/bAA9cf9PK/8N5fd7jZZlPDKKbhT+EoKZTXzNwBiGy68tXerWENFkR0tF
|
||||
Sy9T45RcGve9L5nEV8bqawsxrmnuatSh/6fSTDiz4HO1/mW6/GAT1QPFYrU++p8o
|
||||
BR7WcKCHvQpUt5tXhh1hAZba6j4aeWpXUquyTtrjgqThvvBIT5m76k19BcRaOroE
|
||||
qf0WJOQcvn2hPBNEbSbbHOWaXpHbTI8R6gk+/utRc9/xkHF5vEQTfUPHTkjoK4dW
|
||||
S4p4P6tRcNoxzSfh7bN9nts2VFKcvSaF10m2G1bCyJB2QjKMZG7aGVX+9Pvnoa1v
|
||||
HgNDfKNZR1a/ZYcJm7QY5TRuQF+Evd/OcsVOdRhx804d08ms
|
||||
-----END X509 CRL-----
|
||||
34
core/src/main/resources/google/registry/tmch/icann-tmch.crt
Normal file
34
core/src/main/resources/google/registry/tmch/icann-tmch.crt
Normal file
@@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF4DCCA8igAwIBAgIUHTVZH/TadFNIiEBCJ/OdngKfZwwwDQYJKoZIhvcNAQEN
|
||||
BQAwdjELMAkGA1UEBhMCVVMxPDA6BgNVBAoMM0ludGVybmV0IENvcnBvcmF0aW9u
|
||||
IGZvciBBc3NpZ25lZCBOYW1lcyBhbmQgTnVtYmVyczEpMCcGA1UEAwwgSUNBTk4g
|
||||
VHJhZGVtYXJrIENsZWFyaW5naG91c2UgQ0EwHhcNMjIxMTE1MTg0ODQxWhcNNDIx
|
||||
MTE1MTg0ODQxWjB2MQswCQYDVQQGEwJVUzE8MDoGA1UECgwzSW50ZXJuZXQgQ29y
|
||||
cG9yYXRpb24gZm9yIEFzc2lnbmVkIE5hbWVzIGFuZCBOdW1iZXJzMSkwJwYDVQQD
|
||||
DCBJQ0FOTiBUcmFkZW1hcmsgQ2xlYXJpbmdob3VzZSBDQTCCAiIwDQYJKoZIhvcN
|
||||
AQEBBQADggIPADCCAgoCggIBAMf5/4d2gaDgG0Tbx5ewIKZNlH/KxURjRqWj7vzc
|
||||
SYnzszAcaTuwM1sHWTJtUUC0QP4QcG90e8Q7A7zhgYVm6POBV3U9hv/NVSZB6Set
|
||||
DK5lxU/cubQrPhf2Bc7AkGvfnJV8+/0GI5x9AF8dlSUj3yvl9VWvI8Iuph4xHm0g
|
||||
Fg6BHo4beUVsbdBwnBkSPEmsmNo0D0gf1rCIb/wYfWMZBqU8bduS36TUvHshMTB/
|
||||
Luad3QYyPhqgomizVzEjXebuGlyCtwlGOHdI5t2WlM7XF3RPXZVxA+nsFwRWm9UT
|
||||
r6ygGve3+9y1bjqudWu8mt9VevYCiesLPowUy9E8Vg8xKcsntUWs1KoZTQYxlohb
|
||||
u3cHNxBdYGflQ8m8cbkDeAvWNOgMlhPzWBDFqQeVuBQhiuF9iKR3RZHFAHXJy81t
|
||||
DKQgzR6YlMd3iCGfBVK/uUVr89UgJ1xv5hniSaFDYqtD5rZftvGb2YXsyeQjs0Pl
|
||||
QkZyaynVS5P3Tax57fQUcJR3YqgeoeXQNTit+/ieZju1zGLutGikYujciPBIWoBl
|
||||
S8YnOgPNyfjE+LrQG2RqsZOumqlN66ZjqYH4pCf6lI14PJUl4mUh2YpnIyjQd8Uq
|
||||
QxZmrqDOJAawd2LVuHr4GR6Vbm/oAyyCdQ5HztvCbXOK6v+pMdrrbtb+IlvQ5hcu
|
||||
FoqrAgMBAAGjZjBkMB0GA1UdDgQWBBQ/9EILVpWNuCMCOnQyetISK9fxxjAfBgNV
|
||||
HSMEGDAWgBQ/9EILVpWNuCMCOnQyetISK9fxxjASBgNVHRMBAf8ECDAGAQH/AgEA
|
||||
MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQ0FAAOCAgEAm8QZeNzTD52hZH3I
|
||||
Vy9pti6NRcVSudtzZloVFJ4g9GbIx1uw8k61bgUX70jwk4pPbcOji8RoZoYG842p
|
||||
3tgq50rlRYsKZZx24ZUVaQDz0WKTzjhs2qlk0pRM9XZukZ8SB2knhvJ3byxogxJ0
|
||||
kIP4ysS5op90dcWsrS0O9HF8eBtHYvw2+MuA5KleWB4Qo94+GjmFJsiJiIQ6S+sG
|
||||
M9PZbHSEWW64fNNsgeozlnY9vJ4qRF55tylrB+pXOxVcKDRD3l5GstobmC0waTv8
|
||||
ZvMtR6SQ1QeHRcdznzWsASvDSxhv0vBauKbuBs1T/wgcDF9XXikTx8PbbCQUoCbC
|
||||
4mX+ZNgIXyCbhSVnNBQKN+HBrddm/AqHRLLnfOOcGBqCQ5JLicLvnsRMVrpnoLPS
|
||||
nMbq2QT7J7F5i+q2v2TqeKEwmj4zzh/hX1PbppS8IA/MujivFjLdn1SL0halidYN
|
||||
ywqEF6gUJMoImJ9YWvGRnyv7pm+kgrF83MPbD43AX6Hq8zidYOIzwT4ZnCMlBWJ2
|
||||
iZWciK3/nPe6YH8P5cPddLxRAWBstd5tbDmdPkIMZ0vHccmfIMhlMrCO/IB8N2tv
|
||||
7QJR8V0nE3BIE9RfIa4BrfY5nQpGHWAdpXJH9WTXgcwWUB3JQcxD64c3GhVvp7e4
|
||||
Jwz/ypzBX6WYeSrb3OZWylJ4sWE=
|
||||
-----END CERTIFICATE-----
|
||||
File diff suppressed because it is too large
Load Diff
@@ -126,7 +126,7 @@ public class ExpandRecurringBillingEventsPipelineTest {
|
||||
assertThrows(IllegalArgumentException.class, this::runPipeline);
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("End time 2021-02-02T00:00:05.001Z must be on or before now");
|
||||
.contains("End time 2021-02-02T00:00:05.001Z must be at or before now");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -49,6 +49,8 @@ import google.registry.model.tld.Registry.TldState;
|
||||
import google.registry.persistence.transaction.JpaTestExtensions;
|
||||
import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension;
|
||||
import google.registry.testing.TaskQueueExtension;
|
||||
import google.registry.tmch.TmchData;
|
||||
import google.registry.tmch.TmchTestData;
|
||||
import org.joda.money.Money;
|
||||
import org.joda.time.DateTime;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -64,6 +66,9 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
"ACDATE", "2002-06-04T00:00:00Z",
|
||||
"EXDATE", "2003-06-01T00:04:00Z");
|
||||
|
||||
private static final String ENCODED_SMD =
|
||||
TmchData.readEncodedSignedMark(TmchTestData.loadFile("smd/active.smd")).getEncodedData();
|
||||
|
||||
@RegisterExtension
|
||||
final JpaIntegrationTestExtension jpa =
|
||||
new JpaTestExtensions.Builder().withClock(clock).buildIntegrationTestExtension();
|
||||
@@ -1184,8 +1189,8 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
*/
|
||||
@Test
|
||||
void testDomainCreation_startDateSunriseFull() throws Exception {
|
||||
// The signed mark is valid between 2013 and 2017
|
||||
DateTime sunriseDate = DateTime.parse("2014-09-08T09:09:09Z");
|
||||
// The signed mark is valid between 2022-11-22 and 2027-10-18.
|
||||
DateTime sunriseDate = DateTime.parse("2025-09-08T09:09:09Z");
|
||||
DateTime gaDate = sunriseDate.plusDays(30);
|
||||
createTld(
|
||||
"example",
|
||||
@@ -1201,7 +1206,7 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
createContactsAndHosts();
|
||||
|
||||
// During pre-delegation, any create should fail both with and without mark
|
||||
assertThatCommand("domain_create_sunrise_encoded_mark.xml")
|
||||
assertThatCommand("domain_create_sunrise_encoded_mark.xml", ImmutableMap.of("SMD", ENCODED_SMD))
|
||||
.atTime(sunriseDate.minusDays(2))
|
||||
.hasResponse(
|
||||
"response_error.xml",
|
||||
@@ -1219,7 +1224,9 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
"MSG", "The current registry phase does not allow for general registrations"));
|
||||
|
||||
// During sunrise, verify that the launch phase must be set to sunrise.
|
||||
assertThatCommand("domain_create_start_date_sunrise_encoded_mark_wrong_phase.xml")
|
||||
assertThatCommand(
|
||||
"domain_create_start_date_sunrise_encoded_mark_wrong_phase.xml",
|
||||
ImmutableMap.of("SMD", ENCODED_SMD))
|
||||
.atTime(sunriseDate)
|
||||
.hasResponse(
|
||||
"response_error.xml",
|
||||
@@ -1230,14 +1237,14 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
|
||||
// During sunrise, create with mark will succeed but without will fail.
|
||||
// We also test we can delete without a mark.
|
||||
assertThatCommand("domain_create_sunrise_encoded_mark.xml")
|
||||
assertThatCommand("domain_create_sunrise_encoded_mark.xml", ImmutableMap.of("SMD", ENCODED_SMD))
|
||||
.atTime(sunriseDate.plusDays(1))
|
||||
.hasResponse(
|
||||
"domain_create_response.xml",
|
||||
ImmutableMap.of(
|
||||
"DOMAIN", "test-validate.example",
|
||||
"CRDATE", "2014-09-09T09:09:09Z",
|
||||
"EXDATE", "2015-09-09T09:09:09Z"));
|
||||
"CRDATE", "2025-09-09T09:09:09Z",
|
||||
"EXDATE", "2026-09-09T09:09:09Z"));
|
||||
|
||||
assertThatCommand("domain_delete.xml", ImmutableMap.of("DOMAIN", "test-validate.example"))
|
||||
.atTime(sunriseDate.plusDays(1).plusMinutes(1))
|
||||
@@ -1264,15 +1271,14 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
"Declared launch extension phase does not match the current registry phase"));
|
||||
|
||||
assertThatCommand(
|
||||
"domain_create_no_hosts_or_dsdata.xml",
|
||||
ImmutableMap.of("DOMAIN", "general.example"))
|
||||
"domain_create_no_hosts_or_dsdata.xml", ImmutableMap.of("DOMAIN", "general.example"))
|
||||
.atTime(gaDate.plusDays(2))
|
||||
.hasResponse(
|
||||
"domain_create_response.xml",
|
||||
ImmutableMap.of(
|
||||
"DOMAIN", "general.example",
|
||||
"CRDATE", "2014-10-10T09:09:09Z",
|
||||
"EXDATE", "2016-10-10T09:09:09Z"));
|
||||
"CRDATE", "2025-10-10T09:09:09Z",
|
||||
"EXDATE", "2027-10-10T09:09:09Z"));
|
||||
|
||||
assertThatLogoutSucceeds();
|
||||
}
|
||||
@@ -1280,8 +1286,8 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
/** Test that missing type= argument on launch create works in start-date sunrise. */
|
||||
@Test
|
||||
void testDomainCreation_startDateSunrise_noType() throws Exception {
|
||||
// The signed mark is valid between 2013 and 2017
|
||||
DateTime sunriseDate = DateTime.parse("2014-09-08T09:09:09Z");
|
||||
// The signed mark is valid between 2022-11-22 and 2027-10-18.
|
||||
DateTime sunriseDate = DateTime.parse("2025-09-08T09:09:09Z");
|
||||
DateTime gaDate = sunriseDate.plusDays(30);
|
||||
createTld(
|
||||
"example",
|
||||
@@ -1306,14 +1312,16 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
"CODE", "2303",
|
||||
"MSG", "The domain with given ID (test-validate.example) doesn't exist."));
|
||||
|
||||
assertThatCommand("domain_create_start_date_sunrise_encoded_mark_no_type.xml")
|
||||
assertThatCommand(
|
||||
"domain_create_start_date_sunrise_encoded_mark_no_type.xml",
|
||||
ImmutableMap.of("SMD", ENCODED_SMD))
|
||||
.atTime(sunriseDate.plusDays(1).plusMinutes(1))
|
||||
.hasResponse(
|
||||
"domain_create_response.xml",
|
||||
ImmutableMap.of(
|
||||
"DOMAIN", "test-validate.example",
|
||||
"CRDATE", "2014-09-09T09:10:09Z",
|
||||
"EXDATE", "2015-09-09T09:10:09Z"));
|
||||
"CRDATE", "2025-09-09T09:10:09Z",
|
||||
"EXDATE", "2026-09-09T09:10:09Z"));
|
||||
|
||||
assertThatCommand("domain_info.xml", ImmutableMap.of("DOMAIN", "test-validate.example"))
|
||||
.atTime(sunriseDate.plusDays(1).plusMinutes(2))
|
||||
@@ -1321,8 +1329,8 @@ class EppLifecycleDomainTest extends EppTestCase {
|
||||
"domain_info_response_ok_wildcard.xml",
|
||||
ImmutableMap.of(
|
||||
"DOMAIN", "test-validate.example",
|
||||
"CRDATE", "2014-09-09T09:10:09Z",
|
||||
"EXDATE", "2015-09-09T09:10:09Z"));
|
||||
"CRDATE", "2025-09-09T09:10:09Z",
|
||||
"EXDATE", "2026-09-09T09:10:09Z"));
|
||||
|
||||
assertThatLogoutSucceeds();
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
package google.registry.flows.domain;
|
||||
|
||||
import static com.google.common.collect.ImmutableList.toImmutableList;
|
||||
import static com.google.common.io.BaseEncoding.base16;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static com.google.common.truth.Truth8.assertThat;
|
||||
@@ -25,6 +26,7 @@ import static google.registry.model.billing.BillingEvent.RenewalPriceBehavior.DE
|
||||
import static google.registry.model.billing.BillingEvent.RenewalPriceBehavior.NONPREMIUM;
|
||||
import static google.registry.model.billing.BillingEvent.RenewalPriceBehavior.SPECIFIED;
|
||||
import static google.registry.model.domain.fee.Fee.FEE_EXTENSION_URIS;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.DEFAULT_PROMO;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.PACKAGE;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.SINGLE_USE;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.UNLIMITED_USE;
|
||||
@@ -71,7 +73,6 @@ import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.ImmutableSortedMap;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Ordering;
|
||||
import com.google.common.truth.Truth8;
|
||||
import google.registry.config.RegistryConfig;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.EppException.UnimplementedExtensionException;
|
||||
@@ -90,6 +91,7 @@ import google.registry.flows.domain.DomainCreateFlow.SignedMarksOnlyDuringSunris
|
||||
import google.registry.flows.domain.DomainFlowTmchUtils.FoundMarkExpiredException;
|
||||
import google.registry.flows.domain.DomainFlowTmchUtils.FoundMarkNotYetValidException;
|
||||
import google.registry.flows.domain.DomainFlowTmchUtils.NoMarksFoundMatchingDomainException;
|
||||
import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkRevokedErrorException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.AcceptedTooLongAgoException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.BadDomainNameCharacterException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.BadDomainNamePartsCountException;
|
||||
@@ -180,6 +182,9 @@ import google.registry.persistence.VKey;
|
||||
import google.registry.testing.DatabaseHelper;
|
||||
import google.registry.testing.TaskQueueExtension;
|
||||
import google.registry.testing.TaskQueueHelper.TaskMatcher;
|
||||
import google.registry.tmch.SmdrlCsvParser;
|
||||
import google.registry.tmch.TmchData;
|
||||
import google.registry.tmch.TmchTestData;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
@@ -190,6 +195,8 @@ import org.joda.time.Duration;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
import org.junitpioneer.jupiter.cartesian.CartesianTest;
|
||||
import org.junitpioneer.jupiter.cartesian.CartesianTest.Values;
|
||||
|
||||
/** Unit tests for {@link DomainCreateFlow}. */
|
||||
class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain> {
|
||||
@@ -197,6 +204,18 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
@RegisterExtension TaskQueueExtension taskQueue = new TaskQueueExtension();
|
||||
|
||||
private static final String CLAIMS_KEY = "2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001";
|
||||
// This is a time when SMD itself is not valid, but its signing certificates are. It will
|
||||
// trigger a different exception than when any signing cert is not valid yet.
|
||||
private static final DateTime SMD_NOT_YET_VALID_TIME = DateTime.parse("2022-11-20T12:34:56Z");
|
||||
private static final DateTime SMD_VALID_TIME = DateTime.parse("2023-01-02T12:34:56Z");
|
||||
// This is a time when the imtermediate certificate in the SMD signature chain has expired. The
|
||||
// SMD itself has not expired yet. It will trigger a different exception than when the SMD itself
|
||||
// has expired.
|
||||
private static final DateTime SMD_CERT_EXPIRED_TIME = DateTime.parse("2027-11-02T12:34:56Z");
|
||||
private static final String SMD_ID = "000000851669081693741-65535";
|
||||
private static final String SMD_FILE_PATH = "smd/active.smd";
|
||||
private static final String ENCODED_SMD =
|
||||
TmchData.readEncodedSignedMark(TmchTestData.loadFile(SMD_FILE_PATH)).getEncodedData();
|
||||
|
||||
private AllocationToken allocationToken;
|
||||
|
||||
@@ -206,7 +225,7 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void initCreateTest() {
|
||||
void initCreateTest() throws Exception {
|
||||
createTld("tld");
|
||||
allocationToken =
|
||||
persistResource(
|
||||
@@ -378,13 +397,16 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
private void assertSunriseLordn(String domainName) throws Exception {
|
||||
assertAboutDomains()
|
||||
.that(reloadResourceByForeignKey())
|
||||
.hasSmdId("0000001761376042759136-65535")
|
||||
.hasSmdId(SMD_ID)
|
||||
.and()
|
||||
.hasLaunchNotice(null);
|
||||
String expectedPayload =
|
||||
String.format(
|
||||
"%s,%s,0000001761376042759136-65535,1,2014-09-09T09:09:09.017Z",
|
||||
reloadResourceByForeignKey().getRepoId(), domainName);
|
||||
"%s,%s,%s,1,%s",
|
||||
reloadResourceByForeignKey().getRepoId(),
|
||||
domainName,
|
||||
SMD_ID,
|
||||
SMD_VALID_TIME.plusMillis(17));
|
||||
assertTasksEnqueued(QUEUE_SUNRISE, new TaskMatcher().payload(expectedPayload));
|
||||
}
|
||||
|
||||
@@ -631,7 +653,7 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "open"));
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "open", "SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
EppException thrown = assertThrows(SignedMarksOnlyDuringSunriseException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
@@ -640,10 +662,10 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
@Test
|
||||
void testFailure_generalAvailability_superuserMismatchedEncodedSignedMark() {
|
||||
createTld("tld", GENERAL_AVAILABILITY);
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "wrong.tld", "PHASE", "open"));
|
||||
ImmutableMap.of("DOMAIN", "wrong.tld", "PHASE", "open", "SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
EppException thrown =
|
||||
assertThrows(NoMarksFoundMatchingDomainException.class, this::runFlowAsSuperuser);
|
||||
@@ -1248,14 +1270,22 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
@Test
|
||||
void testSuccess_anchorTenantInSunrise_withMetadataExtension_andSignedMark() throws Exception {
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
setEppInput("domain_create_anchor_tenant_sunrise_metadata_extension_signed_mark.xml");
|
||||
setEppInput(
|
||||
"domain_create_anchor_tenant_sunrise_metadata_extension_signed_mark.xml",
|
||||
ImmutableMap.of("SMD", ENCODED_SMD));
|
||||
eppRequestSource = EppRequestSource.TOOL; // Only tools can pass in metadata.
|
||||
persistContactsAndHosts();
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
runFlowAssertResponse(
|
||||
loadFile(
|
||||
"domain_create_response_encoded_signed_mark_name.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld")));
|
||||
ImmutableMap.of(
|
||||
"DOMAIN",
|
||||
"test-validate.tld",
|
||||
"CREATE_TIME",
|
||||
SMD_VALID_TIME.toString(),
|
||||
"EXPIRATION_TIME",
|
||||
SMD_VALID_TIME.plusYears(2).toString())));
|
||||
assertSuccessfulCreate("tld", ImmutableSet.of(SUNRISE, ANCHOR_TENANT));
|
||||
}
|
||||
|
||||
@@ -1275,13 +1305,19 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
persistReservedList("anchor_tenants", "test-validate,RESERVED_FOR_ANCHOR_TENANT"))
|
||||
.setTldStateTransitions(ImmutableSortedMap.of(START_OF_TIME, START_DATE_SUNRISE))
|
||||
.build());
|
||||
setEppInput("domain_create_anchor_tenant_signed_mark.xml");
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
setEppInput("domain_create_anchor_tenant_signed_mark.xml", ImmutableMap.of("SMD", ENCODED_SMD));
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
persistContactsAndHosts();
|
||||
runFlowAssertResponse(
|
||||
loadFile(
|
||||
"domain_create_response_encoded_signed_mark_name.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld")));
|
||||
ImmutableMap.of(
|
||||
"DOMAIN",
|
||||
"test-validate.tld",
|
||||
"CREATE_TIME",
|
||||
SMD_VALID_TIME.toString(),
|
||||
"EXPIRATION_TIME",
|
||||
SMD_VALID_TIME.plusYears(2).toString())));
|
||||
assertSuccessfulCreate("tld", ImmutableSet.of(ANCHOR_TENANT, SUNRISE), allocationToken);
|
||||
assertDnsTasksEnqueued("test-validate.tld");
|
||||
assertSunriseLordn("test-validate.tld");
|
||||
@@ -1363,7 +1399,7 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
.hasValue(getHistoryEntries(reloadResourceByForeignKey()).get(0).getHistoryEntryId());
|
||||
}
|
||||
|
||||
private void assertAllocationTokenWasNotRedeemed(String token) {
|
||||
private static void assertAllocationTokenWasNotRedeemed(String token) {
|
||||
AllocationToken reloadedToken =
|
||||
tm().transact(() -> tm().loadByKey(VKey.create(AllocationToken.class, token)));
|
||||
assertThat(reloadedToken.isRedeemed()).isFalse();
|
||||
@@ -1612,6 +1648,239 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
.marshalsToXml();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_usesDefaultToken() throws Exception {
|
||||
persistContactsAndHosts();
|
||||
AllocationToken defaultToken1 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("aaaaa")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
AllocationToken defaultToken2 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("bbbbb")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setDefaultPromoTokens(
|
||||
ImmutableList.of(defaultToken1.createVKey(), defaultToken2.createVKey()))
|
||||
.build());
|
||||
runTest_defaultToken("bbbbb");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_doesNotUseDefaultTokenWhenTokenPassedIn() throws Exception {
|
||||
persistContactsAndHosts();
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("abc123")
|
||||
.setTokenType(UNLIMITED_USE)
|
||||
.setDiscountFraction(0.5)
|
||||
.build());
|
||||
AllocationToken defaultToken1 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("aaaaa")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
AllocationToken defaultToken2 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("bbbbb")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setDefaultPromoTokens(
|
||||
ImmutableList.of(defaultToken1.createVKey(), defaultToken2.createVKey()))
|
||||
.build());
|
||||
clock.advanceOneMilli();
|
||||
setEppInput(
|
||||
"domain_create_allocationtoken.xml",
|
||||
ImmutableMap.of("DOMAIN", "example.tld", "YEARS", "2"));
|
||||
runFlowAssertResponse(
|
||||
loadFile("domain_create_response.xml", ImmutableMap.of("DOMAIN", "example.tld")));
|
||||
BillingEvent.OneTime billingEvent =
|
||||
Iterables.getOnlyElement(tm().transact(() -> tm().loadAllOf(BillingEvent.OneTime.class)));
|
||||
assertThat(billingEvent.getTargetId()).isEqualTo("example.tld");
|
||||
assertThat(billingEvent.getCost()).isEqualTo(Money.of(USD, BigDecimal.valueOf(19.5)));
|
||||
assertThat(billingEvent.getAllocationToken().get().getKey()).isEqualTo("abc123");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_noValidDefaultToken() throws Exception {
|
||||
persistContactsAndHosts();
|
||||
AllocationToken defaultToken1 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("aaaaa")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
AllocationToken defaultToken2 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("bbbbb")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("OtherRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setDefaultPromoTokens(
|
||||
ImmutableList.of(defaultToken1.createVKey(), defaultToken2.createVKey()))
|
||||
.build());
|
||||
doSuccessfulTest();
|
||||
}
|
||||
|
||||
void testSuccess_onlyUseFirstValidDefaultToken() throws Exception {
|
||||
persistContactsAndHosts();
|
||||
AllocationToken defaultToken1 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("aaaaa")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
AllocationToken defaultToken2 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("bbbbb")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setDefaultPromoTokens(
|
||||
ImmutableList.of(defaultToken1.createVKey(), defaultToken2.createVKey()))
|
||||
.build());
|
||||
runTest_defaultToken("aaaaa");
|
||||
}
|
||||
|
||||
void testSuccess_registryHasDeletedDefaultToken() throws Exception {
|
||||
persistContactsAndHosts();
|
||||
AllocationToken defaultToken1 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("aaaaa")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
AllocationToken defaultToken2 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("bbbbb")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setDefaultPromoTokens(
|
||||
ImmutableList.of(defaultToken1.createVKey(), defaultToken2.createVKey()))
|
||||
.build());
|
||||
DatabaseHelper.deleteResource(defaultToken1);
|
||||
runTest_defaultToken("bbbbb");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_defaultTokenAppliesCorrectPrice() throws Exception {
|
||||
persistContactsAndHosts();
|
||||
AllocationToken defaultToken1 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("aaaaa")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
AllocationToken defaultToken2 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("bbbbb")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setDiscountFraction(0.5)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setDefaultPromoTokens(
|
||||
ImmutableList.of(defaultToken1.createVKey(), defaultToken2.createVKey()))
|
||||
.build());
|
||||
BillingEvent.OneTime billingEvent = runTest_defaultToken("bbbbb");
|
||||
assertThat(billingEvent.getCost()).isEqualTo(Money.of(USD, BigDecimal.valueOf(19.5)));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_skipsOverMissingDefaultToken() throws Exception {
|
||||
persistContactsAndHosts();
|
||||
AllocationToken defaultToken1 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("aaaaa")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("NewRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
AllocationToken defaultToken2 =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("bbbbb")
|
||||
.setTokenType(DEFAULT_PROMO)
|
||||
.setDiscountFraction(0.5)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar"))
|
||||
.setAllowedTlds(ImmutableSet.of("tld"))
|
||||
.build());
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setDefaultPromoTokens(
|
||||
ImmutableList.of(defaultToken1.createVKey(), defaultToken2.createVKey()))
|
||||
.build());
|
||||
DatabaseHelper.deleteResource(defaultToken1);
|
||||
BillingEvent.OneTime billingEvent = runTest_defaultToken("bbbbb");
|
||||
assertThat(billingEvent.getCost()).isEqualTo(Money.of(USD, BigDecimal.valueOf(19.5)));
|
||||
}
|
||||
|
||||
BillingEvent.OneTime runTest_defaultToken(String token) throws Exception {
|
||||
setEppInput("domain_create.xml", ImmutableMap.of("DOMAIN", "example.tld"));
|
||||
runFlowAssertResponse(
|
||||
loadFile(
|
||||
"domain_create_response_wildcard.xml",
|
||||
new ImmutableMap.Builder<String, String>()
|
||||
.put("DOMAIN", "example.tld")
|
||||
.put("CRDATE", "1999-04-03T22:00:00.0Z")
|
||||
.put("EXDATE", "2001-04-03T22:00:00.0Z")
|
||||
.build()));
|
||||
BillingEvent.OneTime billingEvent =
|
||||
Iterables.getOnlyElement(tm().transact(() -> tm().loadAllOf(BillingEvent.OneTime.class)));
|
||||
assertThat(billingEvent.getTargetId()).isEqualTo("example.tld");
|
||||
assertThat(billingEvent.getAllocationToken().get().getKey()).isEqualTo(token);
|
||||
return billingEvent;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_superuserReserved() throws Exception {
|
||||
setEppInput("domain_create_reserved.xml");
|
||||
@@ -1629,15 +1898,21 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
.asBuilder()
|
||||
.setTldStateTransitions(ImmutableSortedMap.of(START_OF_TIME, START_DATE_SUNRISE))
|
||||
.build());
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-and-validate.tld", "PHASE", "sunrise"));
|
||||
ImmutableMap.of("DOMAIN", "test-and-validate.tld", "PHASE", "sunrise", "SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
runFlowAssertResponse(
|
||||
loadFile(
|
||||
"domain_create_response_encoded_signed_mark_name.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-and-validate.tld")));
|
||||
ImmutableMap.of(
|
||||
"DOMAIN",
|
||||
"test-and-validate.tld",
|
||||
"CREATE_TIME",
|
||||
SMD_VALID_TIME.toString(),
|
||||
"EXPIRATION_TIME",
|
||||
SMD_VALID_TIME.plusYears(2).toString())));
|
||||
|
||||
assertSunriseLordn("test-and-validate.tld");
|
||||
|
||||
@@ -2163,15 +2438,21 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
@Test
|
||||
void testSuccess_startDateSunriseRegistration_withEncodedSignedMark() throws Exception {
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "sunrise"));
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "sunrise", "SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
runFlowAssertResponse(
|
||||
loadFile(
|
||||
"domain_create_response_encoded_signed_mark_name.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld")));
|
||||
ImmutableMap.of(
|
||||
"DOMAIN",
|
||||
"test-validate.tld",
|
||||
"CREATE_TIME",
|
||||
SMD_VALID_TIME.toString(),
|
||||
"EXPIRATION_TIME",
|
||||
SMD_VALID_TIME.plusYears(2).toString())));
|
||||
assertSuccessfulCreate("tld", ImmutableSet.of(SUNRISE));
|
||||
assertSunriseLordn("test-validate.tld");
|
||||
}
|
||||
@@ -2180,13 +2461,21 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
@Test
|
||||
void testSuccess_startDateSunriseRegistration_withEncodedSignedMark_noType() throws Exception {
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
setEppInput("domain_create_sunrise_encoded_signed_mark_no_type.xml");
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
setEppInput(
|
||||
"domain_create_sunrise_encoded_signed_mark_no_type.xml",
|
||||
ImmutableMap.of("SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
runFlowAssertResponse(
|
||||
loadFile(
|
||||
"domain_create_response_encoded_signed_mark_name.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld")));
|
||||
ImmutableMap.of(
|
||||
"DOMAIN",
|
||||
"test-validate.tld",
|
||||
"CREATE_TIME",
|
||||
SMD_VALID_TIME.toString(),
|
||||
"EXPIRATION_TIME",
|
||||
SMD_VALID_TIME.plusYears(2).toString())));
|
||||
assertSuccessfulCreate("tld", ImmutableSet.of(SUNRISE));
|
||||
assertSunriseLordn("test-validate.tld");
|
||||
}
|
||||
@@ -2194,23 +2483,66 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
@Test
|
||||
void testFail_startDateSunriseRegistration_wrongEncodedSignedMark() {
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "wrong.tld", "PHASE", "sunrise"));
|
||||
ImmutableMap.of("DOMAIN", "wrong.tld", "PHASE", "sunrise", "SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
EppException thrown = assertThrows(NoMarksFoundMatchingDomainException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFail_startDateSunriseRegistration_revokedSignedMark() throws Exception {
|
||||
SmdrlCsvParser.parse(TmchTestData.loadFile("smd/smdrl.csv").lines().collect(toImmutableList()))
|
||||
.save();
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
String revokedSmd =
|
||||
TmchData.readEncodedSignedMark(TmchTestData.loadFile("smd/revoked.smd")).getEncodedData();
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "sunrise", "SMD", revokedSmd));
|
||||
persistContactsAndHosts();
|
||||
EppException thrown = assertThrows(SignedMarkRevokedErrorException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@CartesianTest
|
||||
void testFail_startDateSunriseRegistration_IdnRevokedSignedMark(
|
||||
@Values(strings = {"Agent", "Holder"}) String contact,
|
||||
@Values(strings = {"Court", "Trademark", "TreatyStatute"}) String type,
|
||||
@Values(strings = {"Arab", "Chinese", "English", "French"}) String language)
|
||||
throws Exception {
|
||||
String filepath =
|
||||
String.format("idn/%s-%s/%s-%s-%s-Revoked.smd", contact, language, type, contact, language);
|
||||
ImmutableList<String> labels = TmchTestData.extractLabels(filepath);
|
||||
if (labels.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
SmdrlCsvParser.parse(
|
||||
TmchTestData.loadFile("idn/idn_smdrl.csv").lines().collect(toImmutableList()))
|
||||
.save();
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
String revokedSmd =
|
||||
TmchData.readEncodedSignedMark(TmchTestData.loadFile(filepath)).getEncodedData();
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", labels.get(0) + ".tld", "PHASE", "sunrise", "SMD", revokedSmd));
|
||||
persistContactsAndHosts();
|
||||
EppException thrown = assertThrows(SignedMarkRevokedErrorException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFail_startDateSunriseRegistration_markNotYetValid() {
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
// If we move now back in time a bit, the mark will not have gone into effect yet.
|
||||
clock.setTo(DateTime.parse("2013-08-09T10:05:59Z").minusSeconds(1));
|
||||
clock.setTo(SMD_NOT_YET_VALID_TIME);
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "sunrise"));
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "sunrise", "SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
EppException thrown = assertThrows(FoundMarkNotYetValidException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
@@ -2220,10 +2552,10 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
void testFail_startDateSunriseRegistration_markExpired() {
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
// Move time forward to the mark expiration time.
|
||||
clock.setTo(DateTime.parse("2017-07-23T22:00:00.000Z"));
|
||||
clock.setTo(SMD_CERT_EXPIRED_TIME);
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "sunrise"));
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "PHASE", "sunrise", "SMD", ENCODED_SMD));
|
||||
persistContactsAndHosts();
|
||||
EppException thrown = assertThrows(FoundMarkExpiredException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
@@ -2931,10 +3263,10 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
@Test
|
||||
void testSuccess_anchorTenant_inSunrise_trademarked_withSignedMark_viaToken() throws Exception {
|
||||
createTld("tld", START_DATE_SUNRISE);
|
||||
clock.setTo(DateTime.parse("2014-09-09T09:09:09Z"));
|
||||
clock.setTo(SMD_VALID_TIME);
|
||||
setEppInput(
|
||||
"domain_create_registration_encoded_signed_mark_allocationtoken.xml",
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld"));
|
||||
ImmutableMap.of("DOMAIN", "test-validate.tld", "SMD", ENCODED_SMD));
|
||||
persistResource(
|
||||
allocationToken
|
||||
.asBuilder()
|
||||
@@ -3156,7 +3488,7 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
.build()));
|
||||
Domain domain = reloadResourceByForeignKey();
|
||||
assertThat(domain.getCurrentPackageToken()).isPresent();
|
||||
Truth8.assertThat(domain.getCurrentPackageToken()).hasValue(token.createVKey());
|
||||
assertThat(domain.getCurrentPackageToken()).hasValue(token.createVKey());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
package google.registry.reporting.billing;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static google.registry.model.common.Cursor.CursorType.RECURRING_BILLING;
|
||||
import static google.registry.testing.DatabaseHelper.persistResource;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_OK;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -26,7 +24,6 @@ import static org.mockito.Mockito.when;
|
||||
import com.google.cloud.tasks.v2.HttpMethod;
|
||||
import com.google.common.net.MediaType;
|
||||
import google.registry.beam.BeamActionTestBase;
|
||||
import google.registry.model.common.Cursor;
|
||||
import google.registry.persistence.transaction.JpaTestExtensions;
|
||||
import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension;
|
||||
import google.registry.reporting.ReportingModule;
|
||||
@@ -35,10 +32,8 @@ import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
||||
import google.registry.testing.FakeClock;
|
||||
import google.registry.util.CloudTasksUtils;
|
||||
import java.io.IOException;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.Duration;
|
||||
import org.joda.time.YearMonth;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
@@ -55,13 +50,6 @@ class GenerateInvoicesActionTest extends BeamActionTestBase {
|
||||
private CloudTasksUtils cloudTasksUtils = cloudTasksHelper.getTestCloudTasksUtils();
|
||||
private GenerateInvoicesAction action;
|
||||
|
||||
@BeforeEach
|
||||
@Override
|
||||
protected void beforeEach() throws Exception {
|
||||
super.beforeEach();
|
||||
persistResource(Cursor.createGlobal(RECURRING_BILLING, DateTime.parse("2017-11-30TZ")));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testLaunchTemplateJob_withPublish() throws Exception {
|
||||
action =
|
||||
@@ -142,55 +130,4 @@ class GenerateInvoicesActionTest extends BeamActionTestBase {
|
||||
verify(emailUtils).sendAlertEmail("Pipeline Launch failed due to Pipeline error");
|
||||
cloudTasksHelper.assertNoTasksEnqueued("beam-reporting");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailsToGenerateInvoicesNotExpandedBillingEvents() throws Exception {
|
||||
persistResource(Cursor.createGlobal(RECURRING_BILLING, DateTime.parse("2017-10-30TZ")));
|
||||
action =
|
||||
new GenerateInvoicesAction(
|
||||
"test-project",
|
||||
"test-region",
|
||||
"staging_bucket",
|
||||
"billing_bucket",
|
||||
"REG-INV",
|
||||
false,
|
||||
new YearMonth(2017, 10),
|
||||
emailUtils,
|
||||
cloudTasksUtils,
|
||||
clock,
|
||||
response,
|
||||
dataflow);
|
||||
action.run();
|
||||
assertThat(response.getContentType()).isEqualTo(MediaType.PLAIN_TEXT_UTF_8);
|
||||
assertThat(response.getStatus()).isEqualTo(SC_INTERNAL_SERVER_ERROR);
|
||||
assertThat(response.getPayload())
|
||||
.isEqualTo(
|
||||
"Pipeline launch failed: Latest billing events expansion cycle hasn't finished yet,"
|
||||
+ " terminating invoicing pipeline");
|
||||
cloudTasksHelper.assertNoTasksEnqueued("beam-reporting");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSucceedsToGenerateInvoicesFirstDayOfTheYear() throws Exception {
|
||||
persistResource(Cursor.createGlobal(RECURRING_BILLING, DateTime.parse("2017-01-01T13:15:00Z")));
|
||||
action =
|
||||
new GenerateInvoicesAction(
|
||||
"test-project",
|
||||
"test-region",
|
||||
"staging_bucket",
|
||||
"billing_bucket",
|
||||
"REG-INV",
|
||||
false,
|
||||
new YearMonth(2016, 12),
|
||||
emailUtils,
|
||||
cloudTasksUtils,
|
||||
clock,
|
||||
response,
|
||||
dataflow);
|
||||
action.run();
|
||||
assertThat(response.getContentType()).isEqualTo(MediaType.PLAIN_TEXT_UTF_8);
|
||||
assertThat(response.getStatus()).isEqualTo(SC_OK);
|
||||
assertThat(response.getPayload()).isEqualTo("Launched invoicing pipeline: jobid");
|
||||
cloudTasksHelper.assertNoTasksEnqueued("beam-reporting");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ class SmdrlCsvParserTest {
|
||||
private final FakeClock clock = new FakeClock();
|
||||
|
||||
private static final CharSource SMDRL_LATEST_CSV =
|
||||
TmchTestData.loadBytes("smdrl-latest.csv").asCharSource(US_ASCII);
|
||||
TmchTestData.loadBytes("smdrl/smdrl-latest.csv").asCharSource(US_ASCII);
|
||||
|
||||
@Test
|
||||
void testParse() throws Exception {
|
||||
|
||||
@@ -62,7 +62,8 @@ abstract class TmchActionTestCase {
|
||||
@BeforeEach
|
||||
public void beforeEachTmchActionTestCase() throws Exception {
|
||||
marksdb.tmchMarksdbUrl = MARKSDB_URL;
|
||||
marksdb.marksdbPublicKey = TmchData.loadPublicKey(TmchTestData.loadBytes("pubkey"));
|
||||
marksdb.marksdbPublicKey =
|
||||
TmchData.loadPublicKey(TmchTestData.loadBytes("crypto/marksdb-public-key-test.asc"));
|
||||
marksdb.urlConnectionService = urlConnectionService;
|
||||
when(httpUrlConnection.getResponseCode()).thenReturn(SC_OK);
|
||||
}
|
||||
|
||||
@@ -37,24 +37,31 @@ import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
/** Unit tests for {@link TmchCertificateAuthority}. */
|
||||
class TmchCertificateAuthorityTest {
|
||||
|
||||
private static final String GOOD_TEST_CERTIFICATE = loadFile("icann-tmch-test-good.crt");
|
||||
private static final String REVOKED_TEST_CERTIFICATE = loadFile("icann-tmch-test-revoked.crt");
|
||||
// This certificate is extracted from the SMD file smd/active.smd. It is the
|
||||
// intermediate (TMV) certificate that was signed by the root (CA) cert and signed the SMD
|
||||
// file.
|
||||
private static final String GOOD_TMV_CERTIFICATE = loadFile("crypto/icann-tmv-test-good.crt");
|
||||
// This certificate is extracted from the SMD file smd/tmv-cert-revoked.smd. It is the (revoked)
|
||||
// intermediate (TMV) certificate that was signed by the root (CA) cert and signed the SMD
|
||||
// file.
|
||||
private static final String REVOKED_TMV_CERTIFICATE =
|
||||
loadFile("crypto/icann-tmv-test-revoked.crt");
|
||||
|
||||
@RegisterExtension
|
||||
public final JpaIntegrationTestExtension jpa =
|
||||
new JpaTestExtensions.Builder().buildIntegrationTestExtension();
|
||||
|
||||
private final FakeClock clock = new FakeClock(DateTime.parse("2014-01-01T00:00:00Z"));
|
||||
private final FakeClock clock = new FakeClock(DateTime.parse("2022-11-20T00:00:00Z"));
|
||||
|
||||
@Test
|
||||
void testFailure_prodRootExpired() {
|
||||
TmchCertificateAuthority tmchCertificateAuthority =
|
||||
new TmchCertificateAuthority(PRODUCTION, clock);
|
||||
clock.setTo(DateTime.parse("2024-01-01T00:00:00Z"));
|
||||
clock.setTo(DateTime.parse("2500-01-01T00:00:00Z"));
|
||||
CertificateExpiredException e =
|
||||
assertThrows(
|
||||
CertificateExpiredException.class, tmchCertificateAuthority::getAndValidateRoot);
|
||||
assertThat(e).hasMessageThat().contains("NotAfter: Sun Jul 23 23:59:59 UTC 2023");
|
||||
assertThat(e).hasMessageThat().contains("NotAfter");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -65,7 +72,7 @@ class TmchCertificateAuthorityTest {
|
||||
CertificateNotYetValidException e =
|
||||
assertThrows(
|
||||
CertificateNotYetValidException.class, tmchCertificateAuthority::getAndValidateRoot);
|
||||
assertThat(e).hasMessageThat().contains("NotBefore: Wed Jul 24 00:00:00 UTC 2013");
|
||||
assertThat(e).hasMessageThat().contains("NotBefore");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -77,14 +84,14 @@ class TmchCertificateAuthorityTest {
|
||||
SignatureException e =
|
||||
assertThrows(
|
||||
SignatureException.class,
|
||||
() -> tmchCertificateAuthority.verify(loadCertificate(GOOD_TEST_CERTIFICATE)));
|
||||
() -> tmchCertificateAuthority.verify(loadCertificate(GOOD_TMV_CERTIFICATE)));
|
||||
assertThat(e).hasMessageThat().contains("Signature does not match");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_verify() throws Exception {
|
||||
TmchCertificateAuthority tmchCertificateAuthority = new TmchCertificateAuthority(PILOT, clock);
|
||||
tmchCertificateAuthority.verify(loadCertificate(GOOD_TEST_CERTIFICATE));
|
||||
tmchCertificateAuthority.verify(loadCertificate(GOOD_TMV_CERTIFICATE));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -94,7 +101,7 @@ class TmchCertificateAuthorityTest {
|
||||
SignatureException e =
|
||||
assertThrows(
|
||||
SignatureException.class,
|
||||
() -> tmchCertificateAuthority.verify(loadCertificate(GOOD_TEST_CERTIFICATE)));
|
||||
() -> tmchCertificateAuthority.verify(loadCertificate(GOOD_TMV_CERTIFICATE)));
|
||||
assertThat(e).hasMessageThat().contains("Signature does not match");
|
||||
}
|
||||
|
||||
@@ -104,7 +111,7 @@ class TmchCertificateAuthorityTest {
|
||||
CertificateRevokedException thrown =
|
||||
assertThrows(
|
||||
CertificateRevokedException.class,
|
||||
() -> tmchCertificateAuthority.verify(loadCertificate(REVOKED_TEST_CERTIFICATE)));
|
||||
assertThat(thrown).hasMessageThat().contains("revoked, reason: KEY_COMPROMISE");
|
||||
() -> tmchCertificateAuthority.verify(loadCertificate(REVOKED_TMV_CERTIFICATE)));
|
||||
assertThat(thrown).hasMessageThat().contains("revoked, reason: UNSPECIFIED");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
package google.registry.tmch;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static google.registry.testing.TestDataHelper.loadBytes;
|
||||
import static google.registry.tmch.TmchTestData.loadBytes;
|
||||
import static google.registry.util.ResourceUtils.readResourceBytes;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@@ -29,6 +29,7 @@ import java.security.SignatureException;
|
||||
import java.security.cert.CRLException;
|
||||
import java.security.cert.CertificateNotYetValidException;
|
||||
import org.joda.time.DateTime;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/** Unit tests for {@link TmchCrlAction}. */
|
||||
@@ -38,29 +39,30 @@ class TmchCrlActionTest extends TmchActionTestCase {
|
||||
TmchCrlAction action = new TmchCrlAction();
|
||||
action.marksdb = marksdb;
|
||||
action.tmchCertificateAuthority = new TmchCertificateAuthority(tmchCaMode, clock);
|
||||
action.tmchCrlUrl = new URL("http://sloth.lol/tmch.crl");
|
||||
action.tmchCrlUrl = new URL("https://sloth.lol/tmch.crl");
|
||||
return action;
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void before() {
|
||||
clock.setTo(DateTime.parse("2023-03-24TZ"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess() throws Exception {
|
||||
clock.setTo(DateTime.parse("2013-07-24TZ"));
|
||||
when(httpUrlConnection.getInputStream())
|
||||
.thenReturn(
|
||||
new ByteArrayInputStream(
|
||||
readResourceBytes(TmchCertificateAuthority.class, "icann-tmch.crl").read()));
|
||||
newTmchCrlAction(TmchCaMode.PRODUCTION).run();
|
||||
readResourceBytes(TmchCertificateAuthority.class, "icann-tmch-pilot.crl").read()));
|
||||
newTmchCrlAction(TmchCaMode.PILOT).run();
|
||||
verify(httpUrlConnection).getInputStream();
|
||||
assertThat(connectedUrls).containsExactly(new URL("http://sloth.lol/tmch.crl"));
|
||||
assertThat(connectedUrls).containsExactly(new URL("https://sloth.lol/tmch.crl"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_crlTooOld() throws Exception {
|
||||
clock.setTo(DateTime.parse("2020-01-01TZ"));
|
||||
when(httpUrlConnection.getInputStream())
|
||||
.thenReturn(
|
||||
new ByteArrayInputStream(
|
||||
loadBytes(TmchCrlActionTest.class, "icann-tmch-pilot-old.crl").read()));
|
||||
.thenReturn(new ByteArrayInputStream(loadBytes("crypto/icann-tmch-pilot-old.crl").read()));
|
||||
TmchCrlAction action = newTmchCrlAction(TmchCaMode.PILOT);
|
||||
Exception e = assertThrows(Exception.class, action::run);
|
||||
assertThat(e).hasCauseThat().isInstanceOf(CRLException.class);
|
||||
@@ -72,12 +74,11 @@ class TmchCrlActionTest extends TmchActionTestCase {
|
||||
|
||||
@Test
|
||||
void testFailure_crlNotSignedByRoot() throws Exception {
|
||||
clock.setTo(DateTime.parse("2013-07-24TZ"));
|
||||
when(httpUrlConnection.getInputStream())
|
||||
.thenReturn(
|
||||
new ByteArrayInputStream(
|
||||
readResourceBytes(TmchCertificateAuthority.class, "icann-tmch.crl").read()));
|
||||
Exception e = assertThrows(Exception.class, newTmchCrlAction(TmchCaMode.PILOT)::run);
|
||||
readResourceBytes(TmchCertificateAuthority.class, "icann-tmch-pilot.crl").read()));
|
||||
Exception e = assertThrows(Exception.class, newTmchCrlAction(TmchCaMode.PRODUCTION)::run);
|
||||
assertThat(e).hasCauseThat().isInstanceOf(SignatureException.class);
|
||||
assertThat(e).hasCauseThat().hasMessageThat().isEqualTo("Signature does not match.");
|
||||
}
|
||||
|
||||
@@ -43,8 +43,8 @@ class TmchDnlActionTest extends TmchActionTestCase {
|
||||
void testDnl() throws Exception {
|
||||
assertThat(ClaimsListDao.get().getClaimKey("xn----7sbejwbn3axu3d")).isEmpty();
|
||||
when(httpUrlConnection.getInputStream())
|
||||
.thenReturn(new ByteArrayInputStream(TmchTestData.loadBytes("dnl-latest.csv").read()))
|
||||
.thenReturn(new ByteArrayInputStream(TmchTestData.loadBytes("dnl-latest.sig").read()));
|
||||
.thenReturn(new ByteArrayInputStream(TmchTestData.loadBytes("dnl/dnl-latest.csv").read()))
|
||||
.thenReturn(new ByteArrayInputStream(TmchTestData.loadBytes("dnl/dnl-latest.sig").read()));
|
||||
newTmchDnlAction().run();
|
||||
verify(httpUrlConnection, times(2)).getInputStream();
|
||||
assertThat(connectedUrls.stream().map(URL::toString).collect(toImmutableList()))
|
||||
|
||||
@@ -46,8 +46,8 @@ class TmchSmdrlActionTest extends TmchActionTestCase {
|
||||
assertThat(smdrl.isSmdRevoked("0000001681375789102250-65535", now)).isFalse();
|
||||
assertThat(smdrl.isSmdRevoked("0000001681375789102250-65536", now)).isFalse();
|
||||
when(httpUrlConnection.getInputStream())
|
||||
.thenReturn(new ByteArrayInputStream(loadBytes("smdrl-latest.csv").read()))
|
||||
.thenReturn(new ByteArrayInputStream(loadBytes("smdrl-latest.sig").read()));
|
||||
.thenReturn(new ByteArrayInputStream(loadBytes("smdrl/smdrl-latest.csv").read()))
|
||||
.thenReturn(new ByteArrayInputStream(loadBytes("smdrl/smdrl-latest.sig").read()));
|
||||
newTmchSmdrlAction().run();
|
||||
verify(httpUrlConnection, times(2)).getInputStream();
|
||||
assertThat(connectedUrls.stream().map(URL::toString).collect(toImmutableList()))
|
||||
|
||||
@@ -16,22 +16,33 @@ package google.registry.tmch;
|
||||
|
||||
import static com.google.common.base.CharMatcher.whitespace;
|
||||
import static com.google.common.io.BaseEncoding.base64;
|
||||
import static google.registry.tmch.TmchData.BEGIN_ENCODED_SMD;
|
||||
import static google.registry.tmch.TmchData.END_ENCODED_SMD;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.io.ByteSource;
|
||||
import com.google.re2j.Matcher;
|
||||
import com.google.re2j.Pattern;
|
||||
import google.registry.testing.TestDataHelper;
|
||||
|
||||
/** Utility class providing easy access to contents of the {@code testdata/} directory. */
|
||||
/**
|
||||
* Utility class providing easy access to contents of the {@code
|
||||
* core/src/test/resources/google/registry/tmch/} directory.
|
||||
*/
|
||||
public final class TmchTestData {
|
||||
|
||||
private static final String BEGIN_ENCODED_SMD = "-----BEGIN ENCODED SMD-----";
|
||||
private static final String END_ENCODED_SMD = "-----END ENCODED SMD-----";
|
||||
private TmchTestData() {}
|
||||
|
||||
/** Returns {@link ByteSource} for file in {@code tmch/testdata/} directory. */
|
||||
/**
|
||||
* Returns {@link ByteSource} for file in {@code core/src/test/resources/google/registry/tmch/}
|
||||
* directory.
|
||||
*/
|
||||
public static ByteSource loadBytes(String filename) {
|
||||
return TestDataHelper.loadBytes(TmchTestData.class, filename);
|
||||
}
|
||||
|
||||
/** Loads data from file in {@code tmch/testdata/} as a String. */
|
||||
/** Loads data from file in {@code core/src/test/resources/google/registry/tmch/} as a String. */
|
||||
public static String loadFile(String filename) {
|
||||
return TestDataHelper.loadFile(TmchTestData.class, filename);
|
||||
}
|
||||
@@ -47,4 +58,15 @@ public final class TmchTestData {
|
||||
data.indexOf(BEGIN_ENCODED_SMD) + BEGIN_ENCODED_SMD.length(),
|
||||
data.indexOf(END_ENCODED_SMD))));
|
||||
}
|
||||
|
||||
public static ImmutableList<String> extractLabels(String filepath) {
|
||||
String pattern = "U-labels: ";
|
||||
String content = loadFile(filepath);
|
||||
Matcher matcher = Pattern.compile(pattern + ".*").matcher(content);
|
||||
matcher.find();
|
||||
String matchedString = matcher.group().replace(pattern, "");
|
||||
return matchedString.isEmpty()
|
||||
? ImmutableList.of()
|
||||
: ImmutableList.copyOf(Splitter.on(',').trimResults().split(matchedString));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,9 +42,9 @@ class TmchTestDataExpirationTest {
|
||||
* files and so that we can test various types of files, but this test will vail when the validity
|
||||
* of the ICANN-provided file expires.
|
||||
*
|
||||
* <p>When this fails, check
|
||||
* <a>https://newgtlds.icann.org/en/about/trademark-clearinghouse/registries-registrars</a> for a
|
||||
* new updated SMD file.
|
||||
* <p>When this fails, check <a
|
||||
* href="https://newgtlds.icann.org/en/about/trademark-clearinghouse/registries-registrars">Signed
|
||||
* Mark Data Files</a> for a new updated SMD file.
|
||||
*/
|
||||
@Test
|
||||
void testActiveSignedMarkFiles_areValidAndNotExpired() throws Exception {
|
||||
@@ -53,7 +53,7 @@ class TmchTestDataExpirationTest {
|
||||
new TmchXmlSignature(
|
||||
new TmchCertificateAuthority(TmchCaMode.PILOT, new SystemClock())));
|
||||
|
||||
String filePath = "active/smd-active-21aug20-en.smd";
|
||||
String filePath = "smd/active.smd";
|
||||
String tmchData = loadFile(TmchTestDataExpirationTest.class, filePath);
|
||||
EncodedSignedMark smd = TmchData.readEncodedSignedMark(tmchData);
|
||||
try {
|
||||
|
||||
@@ -28,14 +28,18 @@ import java.security.cert.CertificateNotYetValidException;
|
||||
import java.security.cert.CertificateRevokedException;
|
||||
import javax.xml.crypto.dsig.XMLSignatureException;
|
||||
import org.joda.time.DateTime;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
import org.junitpioneer.jupiter.cartesian.CartesianTest;
|
||||
import org.junitpioneer.jupiter.cartesian.CartesianTest.Values;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link TmchXmlSignature}.
|
||||
*
|
||||
* <p>This class does not test the {@code revoked/smd/} folder because it's not a crypto issue.
|
||||
* <p>This class does not verify if the SMD itself is revoked, which is different from if the
|
||||
* certificate signging the SMD is revoked, as it is not a crypto issue.
|
||||
*/
|
||||
class TmchXmlSignatureTest {
|
||||
|
||||
@@ -44,38 +48,54 @@ class TmchXmlSignatureTest {
|
||||
new JpaTestExtensions.Builder().buildIntegrationTestExtension();
|
||||
|
||||
// This should be a date which falls within the validity range of the test files contained in the
|
||||
// testdata/active directory. Note that test files claiming to be valid for a particular date
|
||||
// smd/ directory. Note that test files claiming to be valid for a particular date
|
||||
// range in the file header may not actually be valid the whole time, because they contain an
|
||||
// embedded certificate which might have a shorter validity range.
|
||||
// embedded (intermediate) certificate which might have a shorter validity range.
|
||||
//
|
||||
// New versions of the test files are published every few years by ICANN, and available at in the
|
||||
// Signed Mark Data Files section of:
|
||||
// "Signed Mark Data Files" section of:
|
||||
//
|
||||
// https://newgtlds.icann.org/en/about/trademark-clearinghouse/registries-registrars
|
||||
//
|
||||
// The link labeled "Set of IDN test-SMDs" leads to a .tar.gz file containing the test files which
|
||||
// in our directory structure reside in testdata/active and testdata/revoked/smd (it is not clear
|
||||
// where the files in testdata/invalid and testdata/revoked/tmv come from; we probably made them
|
||||
// ourselves, since there aren't as many of them). For purposes of testing, we could probably keep
|
||||
// using old test files forever, and keep a corresponding old date, but it seems like a good idea
|
||||
// to keep up to date if possible.
|
||||
//
|
||||
// When updating this date, also update the dates below, which test to make sure that dates before
|
||||
// and after the validity window result in rejection.
|
||||
private final FakeClock clock = new FakeClock(DateTime.parse("2018-05-15T23:15:37.4Z"));
|
||||
// When updating this date, also update the "time travel" dates in two tests below, which test to
|
||||
// make sure that dates before and after the validity window result in rejection.
|
||||
private final FakeClock clock = new FakeClock(DateTime.parse("2023-01-15T23:15:37.4Z"));
|
||||
|
||||
private byte[] smdData;
|
||||
private TmchXmlSignature tmchXmlSignature =
|
||||
new TmchXmlSignature(new TmchCertificateAuthority(TmchCaMode.PILOT, clock));
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {}
|
||||
@Test
|
||||
void testActive() throws Exception {
|
||||
smdData = loadSmd("smd/active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRevoked() throws Exception {
|
||||
smdData = loadSmd("smd/revoked.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalid() {
|
||||
smdData = loadSmd("smd/invalid.smd");
|
||||
assertThrows(XMLSignatureException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTmvCertRevoked() {
|
||||
smdData = loadSmd("smd/tmv-cert-revoked.smd");
|
||||
CertificateRevokedException e =
|
||||
assertThrows(CertificateRevokedException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
assertThat(e).hasMessageThat().contains("Certificate has been revoked");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testWrongCertificateAuthority() {
|
||||
tmchXmlSignature =
|
||||
new TmchXmlSignature(new TmchCertificateAuthority(TmchCaMode.PRODUCTION, clock));
|
||||
smdData = loadSmd("active/Court-Agent-Arab-Active.smd");
|
||||
smdData = loadSmd("smd/active.smd");
|
||||
CertificateSignatureException e =
|
||||
assertThrows(CertificateSignatureException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
assertThat(e).hasMessageThat().contains("Signature does not match");
|
||||
@@ -83,265 +103,40 @@ class TmchXmlSignatureTest {
|
||||
|
||||
@Test
|
||||
void testTimeTravelBeforeCertificateWasCreated() {
|
||||
smdData = loadSmd("active/Court-Agent-Arab-Active.smd");
|
||||
clock.setTo(DateTime.parse("2013-05-01T00:00:00Z"));
|
||||
smdData = loadSmd("smd/active.smd");
|
||||
clock.setTo(DateTime.parse("2021-05-01T00:00:00Z"));
|
||||
assertThrows(CertificateNotYetValidException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTimeTravelAfterCertificateHasExpired() {
|
||||
smdData = loadSmd("active/Court-Agent-Arab-Active.smd");
|
||||
clock.setTo(DateTime.parse("2023-06-01T00:00:00Z"));
|
||||
smdData = loadSmd("smd/active.smd");
|
||||
clock.setTo(DateTime.parse("2028-06-01T00:00:00Z"));
|
||||
assertThrows(CertificateExpiredException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtAgentArabActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Agent-Arab-Active.smd");
|
||||
@CartesianTest
|
||||
void testInd(
|
||||
@Values(strings = {"Agent", "Holder"}) String contact,
|
||||
@Values(strings = {"Court", "Trademark", "TreatyStatute"}) String type,
|
||||
@Values(strings = {"Arab", "Chinese", "English", "French"}) String language,
|
||||
@Values(strings = {"Active", "Revoked"}) String status)
|
||||
throws Exception {
|
||||
smdData =
|
||||
loadSmd(
|
||||
String.format(
|
||||
"idn/%s-%s/%s-%s-%s-%s.smd", contact, language, type, contact, language, status));
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtAgentChineseActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Agent-Chinese-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtAgentEnglishActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Agent-English-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtAgentFrenchActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Agent-French-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtAgentRussianActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Agent-Russian-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtHolderArabActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Holder-Arab-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtHolderChineseActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Holder-Chinese-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtHolderEnglishActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Holder-English-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtHolderFrenchActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Holder-French-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveCourtHolderRussianActive() throws Exception {
|
||||
smdData = loadSmd("active/Court-Holder-Russian-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkAgentArabActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Agent-Arab-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkAgentChineseActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Agent-Chinese-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkAgentEnglishActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Agent-English-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkAgentFrenchActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Agent-French-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkAgentRussianActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Agent-Russian-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkHolderArabActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Holder-Arab-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkHolderChineseActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Holder-Chinese-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkHolderEnglishActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Holder-English-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkHolderFrenchActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Holder-French-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTrademarkHolderRussianActive() throws Exception {
|
||||
smdData = loadSmd("active/Trademark-Holder-Russian-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteAgentArabActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Agent-Arab-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteAgentChineseActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Agent-Chinese-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteAgentEnglishActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Agent-English-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteAgentFrenchActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Agent-French-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteAgentRussianActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Agent-Russian-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteHolderArabActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Holder-Arab-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteHolderChineseActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Holder-Chinese-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteHolderEnglishActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Holder-English-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteHolderFrenchActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Holder-French-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testActiveTreatystatuteHolderRussianActive() throws Exception {
|
||||
smdData = loadSmd("active/TreatyStatute-Holder-Russian-Active.smd");
|
||||
tmchXmlSignature.verify(smdData);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalidInvalidsignatureCourtAgentFrenchActive() {
|
||||
smdData = loadSmd("invalid/InvalidSignature-Court-Agent-French-Active.smd");
|
||||
assertThrows(XMLSignatureException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalidInvalidsignatureTrademarkAgentEnglishActive() {
|
||||
smdData = loadSmd("invalid/InvalidSignature-Trademark-Agent-English-Active.smd");
|
||||
assertThrows(XMLSignatureException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalidInvalidsignatureTrademarkAgentRussianActive() {
|
||||
smdData = loadSmd("invalid/InvalidSignature-Trademark-Agent-Russian-Active.smd");
|
||||
assertThrows(XMLSignatureException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalidInvalidsignatureTreatystatuteAgentChineseActive() {
|
||||
smdData = loadSmd("invalid/InvalidSignature-TreatyStatute-Agent-Chinese-Active.smd");
|
||||
assertThrows(XMLSignatureException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalidInvalidsignatureTreatystatuteAgentEnglishActive() {
|
||||
smdData = loadSmd("invalid/InvalidSignature-TreatyStatute-Agent-English-Active.smd");
|
||||
assertThrows(XMLSignatureException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRevokedTmvTmvrevokedCourtAgentFrenchActive() {
|
||||
smdData = loadSmd("revoked/tmv/TMVRevoked-Court-Agent-French-Active.smd");
|
||||
CertificateRevokedException e =
|
||||
assertThrows(CertificateRevokedException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
assertThat(e).hasMessageThat().contains("KEY_COMPROMISE");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRevokedTmvTmvrevokedTrademarkAgentEnglishActive() {
|
||||
smdData = loadSmd("revoked/tmv/TMVRevoked-Trademark-Agent-English-Active.smd");
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = {"Arab", "Chinese", "English", "French"})
|
||||
void testIndTmvRevoked(String language) {
|
||||
smdData =
|
||||
loadSmd(
|
||||
String.format("idn/RevokedCert/TMVRevoked-Trademark-Agent-%s-Active.smd", language));
|
||||
CertificateRevokedException e =
|
||||
assertThrows(CertificateRevokedException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
assertThat(e).hasMessageThat().contains("Certificate has been revoked");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRevokedTmvTmvrevokedTrademarkAgentRussianActive() {
|
||||
smdData = loadSmd("revoked/tmv/TMVRevoked-Trademark-Agent-Russian-Active.smd");
|
||||
CertificateRevokedException e =
|
||||
assertThrows(CertificateRevokedException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
assertThat(e).hasMessageThat().contains("Certificate has been revoked");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRevokedTmvTmvrevokedTreatystatuteAgentChineseActive() {
|
||||
smdData = loadSmd("revoked/tmv/TMVRevoked-TreatyStatute-Agent-Chinese-Active.smd");
|
||||
CertificateRevokedException e =
|
||||
assertThrows(CertificateRevokedException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
assertThat(e).hasMessageThat().contains("KEY_COMPROMISE");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRevokedTmvTmvrevokedTreatystatuteAgentEnglishActive() {
|
||||
smdData = loadSmd("revoked/tmv/TMVRevoked-TreatyStatute-Agent-English-Active.smd");
|
||||
CertificateRevokedException e =
|
||||
assertThrows(CertificateRevokedException.class, () -> tmchXmlSignature.verify(smdData));
|
||||
assertThat(e).hasMessageThat().contains("KEY_COMPROMISE");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,6 +395,26 @@ class GenerateAllocationTokensCommandTest extends CommandTestCase<GenerateAlloca
|
||||
.isInstanceOf(IllegalArgumentException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_invalidPackageTokenStatusTransition() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommand(
|
||||
"--number",
|
||||
"999",
|
||||
"--type",
|
||||
"PACKAGE",
|
||||
String.format(
|
||||
"--token_status_transitions=\"%s=NOT_STARTED,%s=VALID,%s=ENDED\"",
|
||||
START_OF_TIME, fakeClock.nowUtc(), fakeClock.nowUtc().plusDays(1)))))
|
||||
.hasMessageThat()
|
||||
.isEqualTo(
|
||||
"PACKAGE tokens should not be generated with ENDED or CANCELLED in their transition"
|
||||
+ " map");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_lengthOfZero() {
|
||||
IllegalArgumentException thrown =
|
||||
|
||||
@@ -100,6 +100,7 @@ public class RequestFactoryModuleTest {
|
||||
|
||||
@Test
|
||||
void test_provideHttpRequestFactory_remote_withIap() throws Exception {
|
||||
when(credentialsBundle.getHttpRequestInitializer()).thenReturn(httpRequestInitializer);
|
||||
// Mock the request/response to/from the IAP server requesting an ID token
|
||||
UserCredentials mockUserCredentials = mock(UserCredentials.class);
|
||||
when(credentialsBundle.getGoogleCredentials()).thenReturn(mockUserCredentials);
|
||||
@@ -123,9 +124,10 @@ public class RequestFactoryModuleTest {
|
||||
RequestFactoryModule.provideHttpRequestFactory(
|
||||
credentialsBundle, Optional.of("iapClientId"));
|
||||
HttpRequest request = factory.buildGetRequest(new GenericUrl("http://localhost"));
|
||||
assertThat(request.getHeaders().getAuthorization()).isEqualTo("Bearer iapIdToken");
|
||||
assertThat(request.getHeaders().get("Proxy-Authorization")).isEqualTo("Bearer iapIdToken");
|
||||
assertThat(request.getConnectTimeout()).isEqualTo(REQUEST_TIMEOUT_MS);
|
||||
assertThat(request.getReadTimeout()).isEqualTo(REQUEST_TIMEOUT_MS);
|
||||
verify(httpRequestInitializer).initialize(request);
|
||||
verifyNoMoreInteractions(httpRequestInitializer);
|
||||
} finally {
|
||||
RegistryConfig.CONFIG_SETTINGS.get().gcpProject.isLocal = origIsLocal;
|
||||
|
||||
@@ -22,9 +22,12 @@ import static google.registry.model.domain.token.AllocationToken.TokenStatus.CAN
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenStatus.ENDED;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenStatus.NOT_STARTED;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenStatus.VALID;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.PACKAGE;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.SINGLE_USE;
|
||||
import static google.registry.model.domain.token.AllocationToken.TokenType.UNLIMITED_USE;
|
||||
import static google.registry.testing.DatabaseHelper.createTld;
|
||||
import static google.registry.testing.DatabaseHelper.loadByEntity;
|
||||
import static google.registry.testing.DatabaseHelper.persistActiveDomain;
|
||||
import static google.registry.testing.DatabaseHelper.persistResource;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.time.DateTimeZone.UTC;
|
||||
@@ -255,7 +258,7 @@ class UpdateAllocationTokensCommandTest extends CommandTestCase<UpdateAllocation
|
||||
|
||||
@Test
|
||||
void testUpdateStatusTransitions() throws Exception {
|
||||
DateTime now = DateTime.now(UTC);
|
||||
DateTime now = fakeClock.nowUtc();
|
||||
AllocationToken token = persistResource(builderWithPromo().build());
|
||||
runCommandForced(
|
||||
"--prefix",
|
||||
@@ -270,7 +273,7 @@ class UpdateAllocationTokensCommandTest extends CommandTestCase<UpdateAllocation
|
||||
|
||||
@Test
|
||||
void testUpdateStatusTransitions_badTransitions() {
|
||||
DateTime now = DateTime.now(UTC);
|
||||
DateTime now = fakeClock.nowUtc();
|
||||
persistResource(builderWithPromo().build());
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
@@ -288,6 +291,73 @@ class UpdateAllocationTokensCommandTest extends CommandTestCase<UpdateAllocation
|
||||
.isEqualTo("tokenStatusTransitions map cannot transition from NOT_STARTED to ENDED.");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUpdateStatusTransitions_endPackageTokenNoDomains() throws Exception {
|
||||
DateTime now = fakeClock.nowUtc();
|
||||
AllocationToken token =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("token")
|
||||
.setTokenType(PACKAGE)
|
||||
.setRenewalPriceBehavior(SPECIFIED)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar"))
|
||||
.setTokenStatusTransitions(
|
||||
ImmutableSortedMap.<DateTime, TokenStatus>naturalOrder()
|
||||
.put(START_OF_TIME, NOT_STARTED)
|
||||
.put(now.minusDays(1), VALID)
|
||||
.build())
|
||||
.build());
|
||||
runCommandForced(
|
||||
"--prefix",
|
||||
"token",
|
||||
"--token_status_transitions",
|
||||
String.format(
|
||||
"\"%s=NOT_STARTED,%s=VALID,%s=ENDED\"", START_OF_TIME, now.minusDays(1), now));
|
||||
token = reloadResource(token);
|
||||
assertThat(token.getTokenStatusTransitions().toValueMap())
|
||||
.containsExactly(START_OF_TIME, NOT_STARTED, now.minusDays(1), VALID, now, ENDED);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUpdateStatusTransitions_endPackageTokenWithActiveDomainsFails() throws Exception {
|
||||
DateTime now = fakeClock.nowUtc();
|
||||
AllocationToken token =
|
||||
persistResource(
|
||||
new AllocationToken.Builder()
|
||||
.setToken("token")
|
||||
.setTokenType(PACKAGE)
|
||||
.setRenewalPriceBehavior(SPECIFIED)
|
||||
.setAllowedRegistrarIds(ImmutableSet.of("TheRegistrar"))
|
||||
.setTokenStatusTransitions(
|
||||
ImmutableSortedMap.<DateTime, TokenStatus>naturalOrder()
|
||||
.put(START_OF_TIME, NOT_STARTED)
|
||||
.put(now.minusDays(1), VALID)
|
||||
.build())
|
||||
.build());
|
||||
createTld("tld");
|
||||
persistResource(
|
||||
persistActiveDomain("example.tld")
|
||||
.asBuilder()
|
||||
.setCurrentPackageToken(token.createVKey())
|
||||
.build());
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--prefix",
|
||||
"token",
|
||||
"--token_status_transitions",
|
||||
String.format(
|
||||
"\"%s=NOT_STARTED,%s=VALID,%s=ENDED\"",
|
||||
START_OF_TIME, now.minusDays(1), now)));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo(
|
||||
"Package token token can not end its promotion because it still has 1 domains in the"
|
||||
+ " package");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUpdate_onlyWithPrefix() throws Exception {
|
||||
AllocationToken token =
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
// Copyright 2023 The Nomulus Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed 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 google.registry.ui.server.console;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static google.registry.testing.DatabaseHelper.createTld;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
import com.google.api.client.http.HttpStatusCodes;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.gson.Gson;
|
||||
import google.registry.model.console.RegistrarRole;
|
||||
import google.registry.model.console.User;
|
||||
import google.registry.model.console.UserRoles;
|
||||
import google.registry.persistence.transaction.JpaTestExtensions;
|
||||
import google.registry.request.auth.AuthLevel;
|
||||
import google.registry.request.auth.AuthResult;
|
||||
import google.registry.request.auth.UserAuthInfo;
|
||||
import google.registry.testing.DatabaseHelper;
|
||||
import google.registry.testing.FakeResponse;
|
||||
import google.registry.util.UtilsModule;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
/** Tests for {@link google.registry.ui.server.console.ConsoleDomainGetAction}. */
|
||||
public class ConsoleDomainGetActionTest {
|
||||
|
||||
private static final Gson GSON = UtilsModule.provideGson();
|
||||
private static final FakeResponse RESPONSE = new FakeResponse();
|
||||
|
||||
@RegisterExtension
|
||||
final JpaTestExtensions.JpaIntegrationTestExtension jpa =
|
||||
new JpaTestExtensions.Builder().buildIntegrationTestExtension();
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
createTld("tld");
|
||||
DatabaseHelper.persistActiveDomain("exists.tld");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSuccess_fullJsonRepresentation() {
|
||||
ConsoleDomainGetAction action =
|
||||
createAction(
|
||||
AuthResult.create(
|
||||
AuthLevel.USER,
|
||||
UserAuthInfo.create(
|
||||
createUser(
|
||||
new UserRoles.Builder()
|
||||
.setRegistrarRoles(
|
||||
ImmutableMap.of("TheRegistrar", RegistrarRole.ACCOUNT_MANAGER))
|
||||
.build()))),
|
||||
"exists.tld");
|
||||
action.run();
|
||||
assertThat(RESPONSE.getStatus()).isEqualTo(HttpStatusCodes.STATUS_CODE_OK);
|
||||
assertThat(RESPONSE.getPayload())
|
||||
.isEqualTo(
|
||||
"{\"domainName\":\"exists.tld\",\"adminContact\":{\"key\":\"3-ROID\"},\"techContact\":"
|
||||
+ "{\"key\":\"3-ROID\"},\"registrantContact\":{\"key\":\"3-ROID\"},\"registrationExpirationTime\":"
|
||||
+ "\"294247-01-10T04:00:54.775Z\",\"lastTransferTime\":\"null\",\"repoId\":\"2-TLD\","
|
||||
+ "\"currentSponsorRegistrarId\":\"TheRegistrar\",\"creationRegistrarId\":\"TheRegistrar\","
|
||||
+ "\"creationTime\":{\"creationTime\":\"1970-01-01T00:00:00.000Z\"},\"lastEppUpdateTime\":\"null\","
|
||||
+ "\"statuses\":[\"INACTIVE\"]}");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_emptyAuth() {
|
||||
ConsoleDomainGetAction action = createAction(AuthResult.NOT_AUTHENTICATED, "exists.tld");
|
||||
action.run();
|
||||
assertThat(RESPONSE.getStatus()).isEqualTo(HttpStatusCodes.STATUS_CODE_UNAUTHORIZED);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_appAuth() {
|
||||
ConsoleDomainGetAction action = createAction(AuthResult.create(AuthLevel.APP), "exists.tld");
|
||||
action.run();
|
||||
assertThat(RESPONSE.getStatus()).isEqualTo(HttpStatusCodes.STATUS_CODE_UNAUTHORIZED);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_wrongTypeOfUser() {
|
||||
ConsoleDomainGetAction action =
|
||||
createAction(
|
||||
AuthResult.create(
|
||||
AuthLevel.USER,
|
||||
UserAuthInfo.create(mock(com.google.appengine.api.users.User.class), false)),
|
||||
"exists.tld");
|
||||
action.run();
|
||||
assertThat(RESPONSE.getStatus()).isEqualTo(HttpStatusCodes.STATUS_CODE_UNAUTHORIZED);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_noAccessToRegistrar() {
|
||||
ConsoleDomainGetAction action =
|
||||
createAction(
|
||||
AuthResult.create(
|
||||
AuthLevel.USER, UserAuthInfo.create(createUser(new UserRoles.Builder().build()))),
|
||||
"exists.tld");
|
||||
action.run();
|
||||
assertThat(RESPONSE.getStatus()).isEqualTo(HttpStatusCodes.STATUS_CODE_NOT_FOUND);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_nonexistentDomain() {
|
||||
ConsoleDomainGetAction action =
|
||||
createAction(
|
||||
AuthResult.create(
|
||||
AuthLevel.USER,
|
||||
UserAuthInfo.create(createUser(new UserRoles.Builder().setIsAdmin(true).build()))),
|
||||
"nonexistent.tld");
|
||||
action.run();
|
||||
assertThat(RESPONSE.getStatus()).isEqualTo(HttpStatusCodes.STATUS_CODE_NOT_FOUND);
|
||||
}
|
||||
|
||||
private User createUser(UserRoles userRoles) {
|
||||
return new User.Builder()
|
||||
.setEmailAddress("email@email.com")
|
||||
.setGaiaId("gaiaId")
|
||||
.setUserRoles(userRoles)
|
||||
.build();
|
||||
}
|
||||
|
||||
private ConsoleDomainGetAction createAction(AuthResult authResult, String domain) {
|
||||
return new ConsoleDomainGetAction(authResult, RESPONSE, GSON, domain);
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -6,8 +6,8 @@
|
||||
<resData>
|
||||
<domain:creData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||
<domain:name>%DOMAIN%</domain:name>
|
||||
<domain:crDate>2014-09-09T09:09:09Z</domain:crDate>
|
||||
<domain:exDate>2016-09-09T09:09:09Z</domain:exDate>
|
||||
<domain:crDate>%CREATE_TIME%</domain:crDate>
|
||||
<domain:exDate>%EXPIRATION_TIME%</domain:exDate>
|
||||
</domain:creData>
|
||||
</resData>
|
||||
<trID>
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,5 +1,6 @@
|
||||
PATH CLASS METHODS OK AUTH_METHODS MIN USER_POLICY
|
||||
/_dr/epp EppTlsAction POST n INTERNAL,API APP PUBLIC
|
||||
/console-api/domain ConsoleDomainGetAction GET n API,LEGACY USER PUBLIC
|
||||
/registrar ConsoleUiAction GET n INTERNAL,API,LEGACY NONE PUBLIC
|
||||
/registrar-create ConsoleRegistrarCreatorAction POST,GET n INTERNAL,API,LEGACY NONE PUBLIC
|
||||
/registrar-ote-setup ConsoleOteSetupAction POST,GET n INTERNAL,API,LEGACY NONE PUBLIC
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: الاختبار & لتقييم
|
||||
smdID: 000000761526320373066-65535
|
||||
U-labels: xn------nzeaagpf7azb2ppajr3fa, xn-----btdaafne4a7azpoaiq8ea, xn----ymcaaeld1a4a6onahp3ea, xn--mgbaadjcy1a8mmago8da
|
||||
notBefore: 2018-05-14T17:52:53.066Z
|
||||
notAfter: 2022-08-18T14:27:18.209Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il82MzZi
|
||||
ZDEyYy02YzExLTRhOGYtYTVkZC01YmU0NzFhZGNiNWQiPjxzbWQ6aWQ+MDAwMDAwNzYxNTI2MzIw
|
||||
MzczMDY2LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo1My4wNjZaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDoyNzoxOC4yMDlaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxNDQxNTAzMDY2MDIyMTUwMzA2NjAyMi0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPtin2YTYp9iu2KrYqNin2LEgJmFtcDsg2YTYqtmC2YrZitmFPC9tYXJrOm1hcmtO
|
||||
YW1lPjxtYXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm9yZz7ZiNmD2KfZhNip
|
||||
PC9tYXJrOm9yZz48bWFyazphZGRyPjxtYXJrOnN0cmVldD7YrNi52YHYsSDYp9io2YYg2LPZitmG
|
||||
2KfYoSA3NTwvbWFyazpzdHJlZXQ+PG1hcms6Y2l0eT7ZhdmD2YbYp9izPC9tYXJrOmNpdHk+PG1h
|
||||
cms6cGM+MjkwMDwvbWFyazpwYz48bWFyazpjYz5NQTwvbWFyazpjYz48L21hcms6YWRkcj48L21h
|
||||
cms6aG9sZGVyPjxtYXJrOmNvbnRhY3QgdHlwZT0iYWdlbnQiPjxtYXJrOm5hbWU+2YXZh9mG2K/Y
|
||||
syDYp9mE2YXYudmE2YjZhdin2KrZitipPC9tYXJrOm5hbWU+PG1hcms6b3JnPtmI2YPYp9mE2Kk8
|
||||
L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3RyZWV0Pti02KfYsdi5INis2LnZgdixINin2KjZ
|
||||
hiDYs9mK2YbYp9ihIDc1PC9tYXJrOnN0cmVldD48bWFyazpjaXR5PtmF2YPZhtin2LM8L21hcms6
|
||||
Y2l0eT48bWFyazpwYz4yOTAwPC9tYXJrOnBjPjxtYXJrOmNjPk1BPC9tYXJrOmNjPjwvbWFyazph
|
||||
ZGRyPjxtYXJrOnZvaWNlPisyMTIuNTIyNTM5MDQwPC9tYXJrOnZvaWNlPjxtYXJrOmZheD4rMjEy
|
||||
LjUyMjUzOTA0MTwvbWFyazpmYXg+PG1hcms6ZW1haWw+aW5mb0BhZ2VuY3ktbWFyb2Njby5jb208
|
||||
L21hcms6ZW1haWw+PC9tYXJrOmNvbnRhY3Q+PG1hcms6bGFiZWw+eG4tLS0tLS1uemVhYWdwZjdh
|
||||
emIycHBhanIzZmE8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLS0tLWJ0ZGFhZm5lNGE3YXpw
|
||||
b2FpcThlYTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tLS15bWNhYWVsZDFhNGE2b25haHAz
|
||||
ZWE8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLW1nYmFhZGpjeTFhOG1tYWdvOGRhPC9tYXJr
|
||||
OmxhYmVsPjxtYXJrOmdvb2RzQW5kU2VydmljZXM+2LrZitiq2KfYscKnPC9tYXJrOmdvb2RzQW5k
|
||||
U2VydmljZXM+PG1hcms6cmVmTnVtPjEyMzQ8L21hcms6cmVmTnVtPjxtYXJrOnByb0RhdGU+MjAx
|
||||
NC0wOS0wOFQwMDowMDowMC4wMDBaPC9tYXJrOnByb0RhdGU+PG1hcms6Y2M+VVM8L21hcms6Y2M+
|
||||
PG1hcms6Y291cnROYW1lPtin2YTYr9in2LEg2KfZhNio2YrYttin2KE8L21hcms6Y291cnROYW1l
|
||||
PjwvbWFyazpjb3VydD48L21hcms6bWFyaz48ZHM6U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8v
|
||||
d3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJZD0iX2Y5YjhmY2I1LWIyNWMtNDEzOS1hZGE1
|
||||
LTRjOGVhNjEwY2NkOSI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2Qg
|
||||
QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6
|
||||
U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxk
|
||||
c2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxkczpSZWZlcmVuY2UgVVJJPSIjXzYzNmJkMTJjLTZjMTEt
|
||||
NGE4Zi1hNWRkLTViZTQ3MWFkY2I1ZCI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdv
|
||||
cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0
|
||||
dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAv
|
||||
eG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRo
|
||||
bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZh
|
||||
bHVlPnNzQldOUE1COFBFbVlPbGMzVlpNaFVlL1BZa2tmWm1tcCt1TXdWZGN4M3M9PC9kczpEaWdl
|
||||
c3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVmZXJlbmNlIFVSST0iI184OWIzYzk0YS0wMmE0
|
||||
LTRhNTMtOWI5Yi03MjFiN2NkMjMzNTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxn
|
||||
b3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRy
|
||||
YW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIw
|
||||
MDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT5YcXNTbW1BZUZBTnJxaGtwTFlG
|
||||
OE55UFZWUHFtcktYTmhmamFlUVVhRG9NPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+
|
||||
PC9kczpTaWduZWRJbmZvPjxkczpTaWduYXR1cmVWYWx1ZSBJZD0iXzQ3ZjgxY2I0LWNkMjktNDJj
|
||||
Mi1iZTdjLTFhNzI0ZTVhY2I4NSI+dm5pVCtid2xTTDJBTVh1TFNrV0kzVFExdDEwR1p1TFJRL1Vr
|
||||
bjZZNG9SUWRjc0RiTUlmcUFvRUdiT2FjbStvM2lEU1V4RTlwVGdzNwpjUDJaR1FsNk9zbmF3YzR0
|
||||
dEZVdmZVVEx1TGhPR2U5d0cvdXFJR1h5Q3RrZUNWcTJUZitjOGRzZlU2OGFHSkdqVHptZEJVUVR2
|
||||
ZWp6CkNFK2VzRjNFNTFUQ3RkUGxhek15Mm5uQ3Z1bWJzTHU1WnFRWlF2Q20xb25LMGRxMnF6a3k0
|
||||
UWFYSDA0WFpiU2FHcFVaUmp1dDkrTHQKUW9KZm5VeFNOa1MrRC9aWVl5b3lpb2RoWVdPQ1Z1Mk1a
|
||||
MUQvOGlHQUFWRGdmS1RwbXN6RXZsb1F1N2wxeUtIaU1SU2h1ZFY2RGRUKwpRRzBrdTRDbEhUWFdO
|
||||
RFBMQ0J0TUJELzhUakdldFJncGtFaXNQdz09PC9kczpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5m
|
||||
byBJZD0iXzg5YjNjOTRhLTAyYTQtNGE1My05YjliLTcyMWI3Y2QyMzM1NSI+PGRzOlg1MDlEYXRh
|
||||
PjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJRk96Q0NCQ09nQXdJQkFnSWdMckFiZXZvYWU1MnkzZjZD
|
||||
MnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOaFpjd0RRWUpLb1pJaHZjTgpBUUVMQlFBd2ZERUxNQWtH
|
||||
QTFVRUJoTUNWVk14UERBNkJnTlZCQW9UTTBsdWRHVnlibVYwSUVOdmNuQnZjbUYwYVc5dUlHWnZj
|
||||
aUJCCmMzTnBaMjVsWkNCT1lXMWxjeUJoYm1RZ1RuVnRZbVZ5Y3pFdk1DMEdBMVVFQXhNbVNVTkJU
|
||||
azRnVkhKaFpHVnRZWEpySUVOc1pXRnkKYVc1bmFHOTFjMlVnVUdsc2IzUWdRMEV3SGhjTk1UZ3dN
|
||||
akk0TURBd01EQXdXaGNOTWpNd016QXhNak0xT1RVNVdqQ0JqekVMTUFrRwpBMVVFQmhNQ1FrVXhJ
|
||||
REFlQmdOVkJBZ1RGMEp5ZFhOelpXeHpMVU5oY0dsMFlXd2dVbVZuYVc5dU1SRXdEd1lEVlFRSEV3
|
||||
aENjblZ6CmMyVnNjekVSTUE4R0ExVUVDaE1JUkdWc2IybDBkR1V4T0RBMkJnTlZCQU1UTDBsRFFV
|
||||
NU9JRlJOUTBnZ1FYVjBhRzl5YVhwbFpDQlUKY21Ga1pXMWhjbXNnVUdsc2IzUWdWbUZzYVdSaGRH
|
||||
OXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQp4bHAzS3BZSFgz
|
||||
V3lBc0ZoU2szTHdXZm5HbHhuVURGcUZaQTNVb3VNWWovWGlnYk1rTmVFWElqbGtST0tUNE9QR2ZS
|
||||
eC9MQXlSbFFRCmpDTXY0cWhia2NYMXA3YXI2M2ZscTRTWk5WY2wxNWw3aDB1VDU4RnpTZm5sejB1
|
||||
NXJrSGZKSW1ENDMrbWFQLzhndjM2RlIyN2pXOFIKOXdZNGhrK1dzNElCMGlGU2Q4U1h2MUtyOHcv
|
||||
Sm1NUVNEa2l1RytSZklpdWJ3US9meTdFa2o1UVdoUFp3K21NeE5LbkhVTHkzeFl6MgpMd1ZmZnRq
|
||||
d1V1ZWFjdnFOUkNrTVhsQ2xPQURxZlQ4b1Nab2VEWGVoSHZsUHNMQ2VtR0JvVEt1cnNrSVM2OUYw
|
||||
eVBFSDVnemUwSCtmCjhGUk9zSW9LU3NWUTM0QjRTL2pvRTY3bnBzSlBUZEtzTlBKVHlRSURBUUFC
|
||||
bzRJQmt6Q0NBWTh3REFZRFZSMFRBUUgvQkFJd0FEQWQKQmdOVkhRNEVGZ1FVb0ZwWTc2cDV5b05E
|
||||
Ukd0UXB6VnVSODFVV1Ewd2djWUdBMVVkSXdTQnZqQ0J1NEFVdzYwK3B0WVJBRVdBWERwWApTb3B0
|
||||
M0RFTm5uR2hnWUNrZmpCOE1Rc3dDUVlEVlFRR0V3SlZVekU4TURvR0ExVUVDaE16U1c1MFpYSnVa
|
||||
WFFnUTI5eWNHOXlZWFJwCmIyNGdabTl5SUVGemMybG5ibVZrSUU1aGJXVnpJR0Z1WkNCT2RXMWla
|
||||
WEp6TVM4d0xRWURWUVFERXlaSlEwRk9UaUJVY21Ga1pXMWgKY21zZ1EyeGxZWEpwYm1kb2IzVnpa
|
||||
U0JRYVd4dmRDQkRRWUlnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTgpo
|
||||
WGt3RGdZRFZSMFBBUUgvQkFRREFnZUFNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5
|
||||
OWpjbXd1YVdOaGJtNHViM0puCkwzUnRZMmhmY0dsc2IzUXVZM0pzTUZFR0ExVWRJQVJLTUVnd0VB
|
||||
WU9Ld1lCQkFHQ3lSc0JCWU03REFvd05BWUlLd1lCQlFVSEFnRXcKS0RBbUJnZ3JCZ0VGQlFjQ0FS
|
||||
WWFhSFIwY0hNNkx5OWpZUzVwWTJGdWJpNXZjbWN2Y0dsc2IzUXdEUVlKS29aSWh2Y05BUUVMQlFB
|
||||
RApnZ0VCQUF1aloySWNSMkRWcnRhUnJBNTllTllDbDR4Y3NKTXU4RFFDSHYyOGZUZmkvQmlaWTRJ
|
||||
cjdGOWtGeTk2RDdPWjhvTFk1empmCjRkSHhGd0hQcUg4RGg2Sldzelh1SFcxWmEzWG1sMFBhSHhD
|
||||
V1JTMFhvbDhXc0hIcE55Z2pNQllmSjBvZFZNODg1VFoxRWw5U2l1RUgKbnluRkJnU21pRmM5OXVR
|
||||
ZC9ZRFJadUd2L0EwSHl2N3lSOXRrTEVkRDNBMXVOSkJXNFArSEpHcGRLa1lMMVE1clU3K29IVlB0
|
||||
TUtLSQozaUZrVUVzYk80NUFWZDd2UC9qLzdKdEFaUGI2a29PVjVsWmkySDFSTGNjR3d6ZGV6bmhK
|
||||
Z2QwTjlvYmIwdm5FNDEvVVNXYWZkV1JaClZHa3dQdXFUaGw3c0N0enJKSDhYWTB4Y3VtK2NmTHgy
|
||||
RUFJd1VuT2NhYjQ9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUlu
|
||||
Zm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,97 +0,0 @@
|
||||
Marks: 标记&记录
|
||||
smdID: 000000791526320378900-65535
|
||||
U-labels: xn----kw3bu0xlr2bba, xn--and-vj3ft79a885cda, xn--w2t96qr64aa
|
||||
notBefore: 2018-05-14T17:52:58.900Z
|
||||
notAfter: 2022-08-18T14:36:50.931Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8yOTg3
|
||||
MmViNi0xY2JiLTQzYjMtYmIzMy1kZjA2MzhmZmQ0MjciPjxzbWQ6aWQ+MDAwMDAwNzkxNTI2MzIw
|
||||
Mzc4OTAwLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo1OC45MDBaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDozNjo1MC45MzFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxNDYxNTAzMDY2NjMxMTUwMzA2NjYzMS0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPuagh+iusCZhbXA76K6w5b2VPC9tYXJrOm1hcmtOYW1lPjxtYXJrOmhvbGRlciBl
|
||||
bnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm9yZz7lt6XnqIvlpIQ8L21hcms6b3JnPjxtYXJrOmFk
|
||||
ZHI+PG1hcms6c3RyZWV0Pummmea4r+S4nOi3rzblj7fvvIw15Y+35qW877yMOOWPt+WupDwvbWFy
|
||||
azpzdHJlZXQ+PG1hcms6Y2l0eT7pnZLlspvluII8L21hcms6Y2l0eT48bWFyazpwYz4zNTAwPC9t
|
||||
YXJrOnBjPjxtYXJrOmNjPkNOPC9tYXJrOmNjPjwvbWFyazphZGRyPjwvbWFyazpob2xkZXI+PG1h
|
||||
cms6Y29udGFjdCB0eXBlPSJhZ2VudCI+PG1hcms6bmFtZT7mnY7lsI/mlrk8L21hcms6bmFtZT48
|
||||
bWFyazpvcmc+5bel56iL5aSEPC9tYXJrOm9yZz48bWFyazphZGRyPjxtYXJrOnN0cmVldD7pppnm
|
||||
uK/kuJzot6825Y+377yMNeWPt+alvO+8jDjlj7flrqQ8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+
|
||||
6Z2S5bKb5biCPC9tYXJrOmNpdHk+PG1hcms6cGM+MzUwMDwvbWFyazpwYz48bWFyazpjYz5DTjwv
|
||||
bWFyazpjYz48L21hcms6YWRkcj48bWFyazp2b2ljZT4rODYuMTA4NDY1NzE3MzwvbWFyazp2b2lj
|
||||
ZT48bWFyazpmYXg+Kzg2LjEwODQ2NTcxNzU8L21hcms6ZmF4PjxtYXJrOmVtYWlsPmluZm9AY2hp
|
||||
bmVzZS1hZ2VuY3kuY29tPC9tYXJrOmVtYWlsPjwvbWFyazpjb250YWN0PjxtYXJrOmxhYmVsPnhu
|
||||
LS0tLWt3M2J1MHhscjJiYmE8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWFuZC12ajNmdDc5
|
||||
YTg4NWNkYTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tdzJ0OTZxcjY0YWE8L21hcms6bGFi
|
||||
ZWw+PG1hcms6Z29vZHNBbmRTZXJ2aWNlcz4g5ZCJ5LuWPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+
|
||||
PG1hcms6cmVmTnVtPjEyMzQ8L21hcms6cmVmTnVtPjxtYXJrOnByb0RhdGU+MjAxMy0wMS0wMVQw
|
||||
MDowMDowMC4wMDBaPC9tYXJrOnByb0RhdGU+PG1hcms6Y2M+VVM8L21hcms6Y2M+PG1hcms6Y291
|
||||
cnROYW1lPkhvdmU8L21hcms6Y291cnROYW1lPjwvbWFyazpjb3VydD48L21hcms6bWFyaz48ZHM6
|
||||
U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJ
|
||||
ZD0iXzI3ZDI4YTJhLTIyOGMtNDMxNS04YTQ0LTY5NDU1ODdhYjkwYSI+PGRzOlNpZ25lZEluZm8+
|
||||
PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y
|
||||
MDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0
|
||||
cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxkczpSZWZl
|
||||
cmVuY2UgVVJJPSIjXzI5ODcyZWI2LTFjYmItNDNiMy1iYjMzLWRmMDYzOGZmZDQyNyI+PGRzOlRy
|
||||
YW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
|
||||
MDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09
|
||||
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jt
|
||||
cz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94
|
||||
bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPmYwdWNzMUZjM2VwSGxHaldVa3ZVaG4vM0p2
|
||||
V0pMUjl3d2tWSjZkMXRSdXc9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVm
|
||||
ZXJlbmNlIFVSST0iI19mMGVlZmI2NS00Zjg5LTQ4OTktYWQ3Ny04ZGI2MGY3M2UzMDAiPjxkczpU
|
||||
cmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
|
||||
LzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdv
|
||||
cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdl
|
||||
c3RWYWx1ZT5WalVhVnhGM0dGNkwzYWUvNGJOUHl0VWRoVE1RZFNNS09mMURaY1lsN3VRPTwvZHM6
|
||||
RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PC9kczpTaWduZWRJbmZvPjxkczpTaWduYXR1cmVW
|
||||
YWx1ZSBJZD0iXzhmNzZhNTEwLThjYmUtNDI0OS05M2FjLTM4MTM2YTc5NTg2YyI+RUltei9JSWZ4
|
||||
OG5zbVc3TExONXRCbi9NN2VYUDN3QXZVSmNyY2xJaTVCMVBXcldmd2lhbGVvd1lPVGFnWE15cnN5
|
||||
RWMycklETEpQRAprNStZMWxjSnVRaWd6aTd4YlFkaTQveGswRUVJRjJ0TUNDYkgxU0Nua1VoRGkv
|
||||
c096RVJKeXdncWlhbTN2bmE5UE5YaWEzaCs2bU5ICkpOVVZvWWQ3bW4xbHBHOTNkQzA5cVdIbWRT
|
||||
MHRrRVZZQkgyTDlldHJFNjhBMEROWDRaa0NJL05YdzRvQVVlWGtUNUZIWlpJSHRRek4KTlNzUGRX
|
||||
Ujl5a0hMRWZ4NFo5YThES0YzU2JtUnJKVktNbzNLRlhCNzQyVjFRcldsc2xsSmtHMGpBR3Freklw
|
||||
UGxyTm52M2hWUlFrZgpEUUs5QXZ2QlhCSm94UEpFYTFDYzRBKysxQUFqZXBkVVp6ZlV6QT09PC9k
|
||||
czpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5mbyBJZD0iX2YwZWVmYjY1LTRmODktNDg5OS1hZDc3
|
||||
LThkYjYwZjczZTMwMCI+PGRzOlg1MDlEYXRhPjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJRk96Q0NC
|
||||
Q09nQXdJQkFnSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOaFpjd0RR
|
||||
WUpLb1pJaHZjTgpBUUVMQlFBd2ZERUxNQWtHQTFVRUJoTUNWVk14UERBNkJnTlZCQW9UTTBsdWRH
|
||||
VnlibVYwSUVOdmNuQnZjbUYwYVc5dUlHWnZjaUJCCmMzTnBaMjVsWkNCT1lXMWxjeUJoYm1RZ1Ru
|
||||
VnRZbVZ5Y3pFdk1DMEdBMVVFQXhNbVNVTkJUazRnVkhKaFpHVnRZWEpySUVOc1pXRnkKYVc1bmFH
|
||||
OTFjMlVnVUdsc2IzUWdRMEV3SGhjTk1UZ3dNakk0TURBd01EQXdXaGNOTWpNd016QXhNak0xT1RV
|
||||
NVdqQ0JqekVMTUFrRwpBMVVFQmhNQ1FrVXhJREFlQmdOVkJBZ1RGMEp5ZFhOelpXeHpMVU5oY0ds
|
||||
MFlXd2dVbVZuYVc5dU1SRXdEd1lEVlFRSEV3aENjblZ6CmMyVnNjekVSTUE4R0ExVUVDaE1JUkdW
|
||||
c2IybDBkR1V4T0RBMkJnTlZCQU1UTDBsRFFVNU9JRlJOUTBnZ1FYVjBhRzl5YVhwbFpDQlUKY21G
|
||||
a1pXMWhjbXNnVUdsc2IzUWdWbUZzYVdSaGRHOXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9D
|
||||
QVE4QU1JSUJDZ0tDQVFFQQp4bHAzS3BZSFgzV3lBc0ZoU2szTHdXZm5HbHhuVURGcUZaQTNVb3VN
|
||||
WWovWGlnYk1rTmVFWElqbGtST0tUNE9QR2ZSeC9MQXlSbFFRCmpDTXY0cWhia2NYMXA3YXI2M2Zs
|
||||
cTRTWk5WY2wxNWw3aDB1VDU4RnpTZm5sejB1NXJrSGZKSW1ENDMrbWFQLzhndjM2RlIyN2pXOFIK
|
||||
OXdZNGhrK1dzNElCMGlGU2Q4U1h2MUtyOHcvSm1NUVNEa2l1RytSZklpdWJ3US9meTdFa2o1UVdo
|
||||
UFp3K21NeE5LbkhVTHkzeFl6MgpMd1ZmZnRqd1V1ZWFjdnFOUkNrTVhsQ2xPQURxZlQ4b1Nab2VE
|
||||
WGVoSHZsUHNMQ2VtR0JvVEt1cnNrSVM2OUYweVBFSDVnemUwSCtmCjhGUk9zSW9LU3NWUTM0QjRT
|
||||
L2pvRTY3bnBzSlBUZEtzTlBKVHlRSURBUUFCbzRJQmt6Q0NBWTh3REFZRFZSMFRBUUgvQkFJd0FE
|
||||
QWQKQmdOVkhRNEVGZ1FVb0ZwWTc2cDV5b05EUkd0UXB6VnVSODFVV1Ewd2djWUdBMVVkSXdTQnZq
|
||||
Q0J1NEFVdzYwK3B0WVJBRVdBWERwWApTb3B0M0RFTm5uR2hnWUNrZmpCOE1Rc3dDUVlEVlFRR0V3
|
||||
SlZVekU4TURvR0ExVUVDaE16U1c1MFpYSnVaWFFnUTI5eWNHOXlZWFJwCmIyNGdabTl5SUVGemMy
|
||||
bG5ibVZrSUU1aGJXVnpJR0Z1WkNCT2RXMWlaWEp6TVM4d0xRWURWUVFERXlaSlEwRk9UaUJVY21G
|
||||
a1pXMWgKY21zZ1EyeGxZWEpwYm1kb2IzVnpaU0JRYVd4dmRDQkRRWUlnTHJBYmV2b2FlNTJ5M2Y2
|
||||
QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTgpoWGt3RGdZRFZSMFBBUUgvQkFRREFnZUFNRFFHQTFV
|
||||
ZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1YVdOaGJtNHViM0puCkwzUnRZMmhmY0ds
|
||||
c2IzUXVZM0pzTUZFR0ExVWRJQVJLTUVnd0VBWU9Ld1lCQkFHQ3lSc0JCWU03REFvd05BWUlLd1lC
|
||||
QlFVSEFnRXcKS0RBbUJnZ3JCZ0VGQlFjQ0FSWWFhSFIwY0hNNkx5OWpZUzVwWTJGdWJpNXZjbWN2
|
||||
Y0dsc2IzUXdEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUF1aloySWNSMkRWcnRhUnJBNTllTllD
|
||||
bDR4Y3NKTXU4RFFDSHYyOGZUZmkvQmlaWTRJcjdGOWtGeTk2RDdPWjhvTFk1empmCjRkSHhGd0hQ
|
||||
cUg4RGg2Sldzelh1SFcxWmEzWG1sMFBhSHhDV1JTMFhvbDhXc0hIcE55Z2pNQllmSjBvZFZNODg1
|
||||
VFoxRWw5U2l1RUgKbnluRkJnU21pRmM5OXVRZC9ZRFJadUd2L0EwSHl2N3lSOXRrTEVkRDNBMXVO
|
||||
SkJXNFArSEpHcGRLa1lMMVE1clU3K29IVlB0TUtLSQozaUZrVUVzYk80NUFWZDd2UC9qLzdKdEFa
|
||||
UGI2a29PVjVsWmkySDFSTGNjR3d6ZGV6bmhKZ2QwTjlvYmIwdm5FNDEvVVNXYWZkV1JaClZHa3dQ
|
||||
dXFUaGw3c0N0enJKSDhYWTB4Y3VtK2NmTHgyRUFJd1VuT2NhYjQ9PC9kczpYNTA5Q2VydGlmaWNh
|
||||
dGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVk
|
||||
TWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,100 +0,0 @@
|
||||
Marks: Test & Validate
|
||||
smdID: 000000851526320390595-65535
|
||||
U-labels: test---validate, test--validate, test-and-validate, test-andvalidate, test-validate, testand-validate, testandvalidate, testvalidate
|
||||
notBefore: 2018-05-14T17:53:10.595Z
|
||||
notAfter: 2022-08-18T14:57:36.681Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8wYjlj
|
||||
YTI5My0yYjExLTQ4M2MtYjZjMi0xYTk5MGIyMTdlYjgiPjxzbWQ6aWQ+MDAwMDAwODUxNTI2MzIw
|
||||
MzkwNTk1LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzoxMC41OTVaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDo1NzozNi42ODFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxMzcxNTAzMDY3ODY4MTUwMzA2Nzg2OC0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPlRlc3QgJmFtcDsgVmFsaWRhdGU8L21hcms6bWFya05hbWU+PG1hcms6aG9sZGVy
|
||||
IGVudGl0bGVtZW50PSJvd25lciI+PG1hcms6bmFtZT5Ub255IEhvbGxhbmQ8L21hcms6bmFtZT48
|
||||
bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3RyZWV0
|
||||
PjEzMDUgQnJpZ2h0IEF2ZW51ZTwvbWFyazpzdHJlZXQ+PG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJr
|
||||
OmNpdHk+PG1hcms6cGM+OTAwMjg8L21hcms6cGM+PG1hcms6Y2M+VVM8L21hcms6Y2M+PC9tYXJr
|
||||
OmFkZHI+PC9tYXJrOmhvbGRlcj48bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij48bWFyazpuYW1l
|
||||
PlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPjxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpv
|
||||
cmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+QnJpZ2h0IEF2ZW51ZSAxMzA1IDwvbWFyazpzdHJl
|
||||
ZXQ+PG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+PG1hcms6c3A+Q0E8L21hcms6c3A+PG1h
|
||||
cms6cGM+OTAwMjg8L21hcms6cGM+PG1hcms6Y2M+VVM8L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1h
|
||||
cms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT48bWFyazpmYXg+KzEuMjAyNTU2MjMw
|
||||
MTwvbWFyazpmYXg+PG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFp
|
||||
bD48L21hcms6Y29udGFjdD48bWFyazpsYWJlbD50ZXN0LS0tdmFsaWRhdGU8L21hcms6bGFiZWw+
|
||||
PG1hcms6bGFiZWw+dGVzdC0tdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdC1h
|
||||
bmQtdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdC1hbmR2YWxpZGF0ZTwvbWFy
|
||||
azpsYWJlbD48bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVs
|
||||
PnRlc3RhbmQtdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdGFuZHZhbGlkYXRl
|
||||
PC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnRlc3R2YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpn
|
||||
b29kc0FuZFNlcnZpY2VzPmd1aXRhcjwvbWFyazpnb29kc0FuZFNlcnZpY2VzPjxtYXJrOnJlZk51
|
||||
bT4xMjM0PC9tYXJrOnJlZk51bT48bWFyazpwcm9EYXRlPjIwMTMtMDEtMDFUMDA6MDA6MDAuMDAw
|
||||
WjwvbWFyazpwcm9EYXRlPjxtYXJrOmNjPlVTPC9tYXJrOmNjPjxtYXJrOmNvdXJ0TmFtZT5Ib3Zl
|
||||
PC9tYXJrOmNvdXJ0TmFtZT48L21hcms6Y291cnQ+PC9tYXJrOm1hcms+PGRzOlNpZ25hdHVyZSB4
|
||||
bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il83NzViYTgx
|
||||
YS1mMWYzLTQ3OTgtODE4NS1hODkzNmYyZTI4MTkiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmlj
|
||||
YWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwt
|
||||
ZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMu
|
||||
b3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0i
|
||||
I18wYjljYTI5My0yYjExLTQ4M2MtYjZjMi0xYTk5MGIyMTdlYjgiPjxkczpUcmFuc2Zvcm1zPjxk
|
||||
czpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcj
|
||||
ZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3
|
||||
LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2Vz
|
||||
dE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1
|
||||
NiIvPjxkczpEaWdlc3RWYWx1ZT5xYVZhY2gxNFNkbHd1R0JBNk0xV0ZFdUJuQnM1RW01QjExWDg5
|
||||
YndGR1E4PTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9
|
||||
IiNfY2I3YjUxMWUtNjdiNC00ZTlhLTlmODAtZDdkYjg2MjY4ZGRmIj48ZHM6VHJhbnNmb3Jtcz48
|
||||
ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhj
|
||||
LWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRw
|
||||
Oi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+cEND
|
||||
NVlpakJXUWFmM0J3VWVzbEh2TVNFNjcyZ1NUWVNqencxN3VLZDdmOD08L2RzOkRpZ2VzdFZhbHVl
|
||||
PjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il84
|
||||
MTkyMTFkOS02ZDUzLTQwMzgtOTBiYi01MDAxYTk5MDE0MDgiPmxZNjBKZEpoMGs1MElTWm4yYzAz
|
||||
VFRGc1c4bURxaVNDTUFKeDkwNlVEb2FUM2tndUh6cXM0c1V5VXRobEdWOXhMMlNkNmQwNkVrcTUK
|
||||
aVFnVnFKNGN2ZldlVjlJN2hxSk16NldjOHpNdXBFZ2ZlUGVLWkNYL2JlaGtGM3RSRHJ4NGdqbFBR
|
||||
RDVhV0MveURjWEJjWGo1QU4xNwpMY0pnVjVDMmUxSzVNWjV6amFzWExTaHJnMEtuZ1Y5S094RXl3
|
||||
Zm9LZWtTWWRzZWpJYTRCYjVnVzgzMG1uMEtKWjdOaUVqclB1TTU5CklqbTExYTNyY2Q1L2hGNGln
|
||||
TTQ3RWI0YVg4WG1NRDU1N0xnVy9FWStHbGpKNWFFRlJrN1hMZ2ZTM2VPcGptUGlyNGpCZGIwSDBJ
|
||||
NkYKRkNHM0pua0F6UWxUeFo3RUZ6L0Zqa2VnREVoSXhIMHBLTW1LM1E9PTwvZHM6U2lnbmF0dXJl
|
||||
VmFsdWU+PGRzOktleUluZm8gSWQ9Il9jYjdiNTExZS02N2I0LTRlOWEtOWY4MC1kN2RiODYyNjhk
|
||||
ZGYiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZPekNDQkNPZ0F3SUJBZ0ln
|
||||
THJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhaY3dEUVlKS29aSWh2Y04K
|
||||
QVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZj
|
||||
bkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZN
|
||||
QzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNi
|
||||
M1FnUTBFd0hoY05NVGd3TWpJNE1EQXdNREF3V2hjTk1qTXdNekF4TWpNMU9UVTVXakNCanpFTE1B
|
||||
a0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFX
|
||||
OXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9E
|
||||
QTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VH
|
||||
bHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dL
|
||||
Q0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05l
|
||||
RVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVs
|
||||
N2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJ
|
||||
QjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25I
|
||||
VUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENl
|
||||
bUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQ
|
||||
VGRLc05QSlR5UUlEQVFBQm80SUJrekNDQVk4d0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRF
|
||||
RmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtw
|
||||
dFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dB
|
||||
MVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhi
|
||||
V1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dR
|
||||
MnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdY
|
||||
Sm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0th
|
||||
QW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01G
|
||||
RUdBMVVkSUFSS01FZ3dFQVlPS3dZQkJBR0N5UnNCQllNN0RBb3dOQVlJS3dZQkJRVUhBZ0V3CktE
|
||||
QW1CZ2dyQmdFRkJRY0NBUllhYUhSMGNITTZMeTlqWVM1cFkyRnViaTV2Y21jdmNHbHNiM1F3RFFZ
|
||||
SktvWklodmNOQVFFTEJRQUQKZ2dFQkFBdWpaMkljUjJEVnJ0YVJyQTU5ZU5ZQ2w0eGNzSk11OERR
|
||||
Q0h2MjhmVGZpL0JpWlk0SXI3RjlrRnk5NkQ3T1o4b0xZNXpqZgo0ZEh4RndIUHFIOERoNkpXc3pY
|
||||
dUhXMVphM1htbDBQYUh4Q1dSUzBYb2w4V3NISHBOeWdqTUJZZkowb2RWTTg4NVRaMUVsOVNpdUVI
|
||||
Cm55bkZCZ1NtaUZjOTl1UWQvWURSWnVHdi9BMEh5djd5Ujl0a0xFZEQzQTF1TkpCVzRQK0hKR3Bk
|
||||
S2tZTDFRNXJVNytvSFZQdE1LS0kKM2lGa1VFc2JPNDVBVmQ3dlAvai83SnRBWlBiNmtvT1Y1bFpp
|
||||
MkgxUkxjY0d3emRlem5oSmdkME45b2JiMHZuRTQxL1VTV2FmZFdSWgpWR2t3UHVxVGhsN3NDdHpy
|
||||
Skg4WFkweGN1bStjZkx4MkVBSXdVbk9jYWI0PTwvZHM6WDUwOUNlcnRpZmljYXRlPjwvZHM6WDUw
|
||||
OURhdGE+PC9kczpLZXlJbmZvPjwvZHM6U2lnbmF0dXJlPjwvc21kOnNpZ25lZE1hcms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,101 +0,0 @@
|
||||
Marks: Essai & évaluation
|
||||
smdID: 000000821526320384749-65535
|
||||
U-labels: xn--essai---valuation-itb, xn--essai--valuation-hqb, xn--essai-et-valuation-jwb, xn--essai-etvaluation-itb, xn--essai-valuation-gnb, xn--essaiet-valuation-itb, xn--essaietvaluation-hqb, xn--essaivaluation-fkb
|
||||
notBefore: 2018-05-14T17:53:04.749Z
|
||||
notAfter: 2022-08-18T14:46:53.013Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il84MGIx
|
||||
NGY4MS1mODA0LTQwYjMtOGRjZC1iOTNhNjVhNTc5MTgiPjxzbWQ6aWQ+MDAwMDAwODIxNTI2MzIw
|
||||
Mzg0NzQ5LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzowNC43NDlaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDo0Njo1My4wMTNaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxMzkxNTAzMDY3MTg5MTUwMzA2NzE4OS0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPkVzc2FpICZhbXA7IMOpdmFsdWF0aW9uPC9tYXJrOm1hcmtOYW1lPjxtYXJrOmhv
|
||||
bGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm9yZz5BZ2VuY2UgZW4gRnJhbmNlPC9tYXJr
|
||||
Om9yZz48bWFyazphZGRyPjxtYXJrOnN0cmVldD4xMCBBdmVudWUgUm91c3NlYXV4PC9tYXJrOnN0
|
||||
cmVldD48bWFyazpjaXR5PlZlcnNhaWxsZXM8L21hcms6Y2l0eT48bWFyazpwYz4zMzA4MTwvbWFy
|
||||
azpwYz48bWFyazpjYz5GUjwvbWFyazpjYz48L21hcms6YWRkcj48L21hcms6aG9sZGVyPjxtYXJr
|
||||
OmNvbnRhY3QgdHlwZT0iYWdlbnQiPjxtYXJrOm5hbWU+RnJhbmMgTGVicnVuPC9tYXJrOm5hbWU+
|
||||
PG1hcms6b3JnPkFnZW5jZSBlbiBGcmFuY2U8L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3Ry
|
||||
ZWV0PkF2ZW51ZSBSb3Vzc2VhdXggMTAgPC9tYXJrOnN0cmVldD48bWFyazpjaXR5PlZlcnNhaWxs
|
||||
ZXM8L21hcms6Y2l0eT48bWFyazpwYz4zMzA4MTwvbWFyazpwYz48bWFyazpjYz5GUjwvbWFyazpj
|
||||
Yz48L21hcms6YWRkcj48bWFyazp2b2ljZT4rMzMuMTI1NzgxMjUwPC9tYXJrOnZvaWNlPjxtYXJr
|
||||
OmZheD4rMzMuMTI1NzgxMjUxPC9tYXJrOmZheD48bWFyazplbWFpbD5pbmZvQGFnZW5jZS1lbi1m
|
||||
cmFuY2UuZnI8L21hcms6ZW1haWw+PC9tYXJrOmNvbnRhY3Q+PG1hcms6bGFiZWw+eG4tLWVzc2Fp
|
||||
LS0tdmFsdWF0aW9uLWl0YjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXNzYWktLXZhbHVh
|
||||
dGlvbi1ocWI8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWVzc2FpLWV0LXZhbHVhdGlvbi1q
|
||||
d2I8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWVzc2FpLWV0dmFsdWF0aW9uLWl0YjwvbWFy
|
||||
azpsYWJlbD48bWFyazpsYWJlbD54bi0tZXNzYWktdmFsdWF0aW9uLWduYjwvbWFyazpsYWJlbD48
|
||||
bWFyazpsYWJlbD54bi0tZXNzYWlldC12YWx1YXRpb24taXRiPC9tYXJrOmxhYmVsPjxtYXJrOmxh
|
||||
YmVsPnhuLS1lc3NhaWV0dmFsdWF0aW9uLWhxYjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0t
|
||||
ZXNzYWl2YWx1YXRpb24tZmtiPC9tYXJrOmxhYmVsPjxtYXJrOmdvb2RzQW5kU2VydmljZXM+Z3Vp
|
||||
dGFyPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+PG1hcms6cmVmTnVtPjEyMzQ8L21hcms6cmVmTnVt
|
||||
PjxtYXJrOnByb0RhdGU+MjAxMy0wMS0wMVQwMDowMDowMC4wMDBaPC9tYXJrOnByb0RhdGU+PG1h
|
||||
cms6Y2M+RlI8L21hcms6Y2M+PG1hcms6Y291cnROYW1lPmd1aXRhcmU8L21hcms6Y291cnROYW1l
|
||||
PjwvbWFyazpjb3VydD48L21hcms6bWFyaz48ZHM6U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8v
|
||||
d3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJZD0iX2E0YTNhZTUyLTgwODQtNGVlYi04M2M5
|
||||
LTc1ZTQ1ZDQzMDBhMiI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2Qg
|
||||
QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6
|
||||
U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxk
|
||||
c2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxkczpSZWZlcmVuY2UgVVJJPSIjXzgwYjE0ZjgxLWY4MDQt
|
||||
NDBiMy04ZGNkLWI5M2E2NWE1NzkxOCI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdv
|
||||
cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0
|
||||
dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAv
|
||||
eG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRo
|
||||
bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZh
|
||||
bHVlPnpKaDgwMDVSTmtXL3F4YmNHZHUrVXlEaUFaQ1VNRWkwT0xnUW9jZ0FCc1E9PC9kczpEaWdl
|
||||
c3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVmZXJlbmNlIFVSST0iI18wNzdjNzM1OS03YWI2
|
||||
LTQyNDUtOGJiNi0xOWUyNTdmNmU3MTciPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxn
|
||||
b3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRy
|
||||
YW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIw
|
||||
MDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT5CTzloVkJUa3dVbDBxZHhUNTl5
|
||||
aXpjV3VDN1ZIMjIreGovRDZPZitVbnRZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+
|
||||
PC9kczpTaWduZWRJbmZvPjxkczpTaWduYXR1cmVWYWx1ZSBJZD0iXzA2OTE3YzM0LTZiMmMtNDdi
|
||||
ZS04YzA3LWNmMTJhZDkzZDYxNSI+bnRFbHMwT2h4bEFDL0MxVWZwemhRR2xkNHlXZkxRZTdFdDd1
|
||||
b3JiY0dRTldOOERGZjBNbVpqUnFmaTZWVzYwM2Fwd3dZZWlaTTdDVwpvRi93REhsMkc2a0d1eTBG
|
||||
QnoyakhPVnVQdG1RNGZJcVdQU24xZUUxQkZSbHpURDlPRm5VTWxPRW9ONDFxMHdGVzQwdTRnMVd0
|
||||
bU5YCmpWVFJEY1BmejMwWUxCT29lSUFMUHhJSHEwTkRQRmpSNExTNWtzY2J2eGU4d0h3RWNHeGJq
|
||||
b0tnU0xUTklNeDVTbkwwNFpYSHd0eGgKMGJ5eWRBanFnMU9ja2JhdEVaQ0U0MHFpZ0kwRmdRb0hm
|
||||
M0tjVkY3UXEwbTFIdXlNS3lwRUVLSFBmejNWcmw1N24wUFVWU1FJd0VpTgpxaEVVMkxhRy8zQndp
|
||||
YWw1M29GdVZpcTd3VUZyNzVmR2ZQcm14QT09PC9kczpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5m
|
||||
byBJZD0iXzA3N2M3MzU5LTdhYjYtNDI0NS04YmI2LTE5ZTI1N2Y2ZTcxNyI+PGRzOlg1MDlEYXRh
|
||||
PjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJRk96Q0NCQ09nQXdJQkFnSWdMckFiZXZvYWU1MnkzZjZD
|
||||
MnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOaFpjd0RRWUpLb1pJaHZjTgpBUUVMQlFBd2ZERUxNQWtH
|
||||
QTFVRUJoTUNWVk14UERBNkJnTlZCQW9UTTBsdWRHVnlibVYwSUVOdmNuQnZjbUYwYVc5dUlHWnZj
|
||||
aUJCCmMzTnBaMjVsWkNCT1lXMWxjeUJoYm1RZ1RuVnRZbVZ5Y3pFdk1DMEdBMVVFQXhNbVNVTkJU
|
||||
azRnVkhKaFpHVnRZWEpySUVOc1pXRnkKYVc1bmFHOTFjMlVnVUdsc2IzUWdRMEV3SGhjTk1UZ3dN
|
||||
akk0TURBd01EQXdXaGNOTWpNd016QXhNak0xT1RVNVdqQ0JqekVMTUFrRwpBMVVFQmhNQ1FrVXhJ
|
||||
REFlQmdOVkJBZ1RGMEp5ZFhOelpXeHpMVU5oY0dsMFlXd2dVbVZuYVc5dU1SRXdEd1lEVlFRSEV3
|
||||
aENjblZ6CmMyVnNjekVSTUE4R0ExVUVDaE1JUkdWc2IybDBkR1V4T0RBMkJnTlZCQU1UTDBsRFFV
|
||||
NU9JRlJOUTBnZ1FYVjBhRzl5YVhwbFpDQlUKY21Ga1pXMWhjbXNnVUdsc2IzUWdWbUZzYVdSaGRH
|
||||
OXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQp4bHAzS3BZSFgz
|
||||
V3lBc0ZoU2szTHdXZm5HbHhuVURGcUZaQTNVb3VNWWovWGlnYk1rTmVFWElqbGtST0tUNE9QR2ZS
|
||||
eC9MQXlSbFFRCmpDTXY0cWhia2NYMXA3YXI2M2ZscTRTWk5WY2wxNWw3aDB1VDU4RnpTZm5sejB1
|
||||
NXJrSGZKSW1ENDMrbWFQLzhndjM2RlIyN2pXOFIKOXdZNGhrK1dzNElCMGlGU2Q4U1h2MUtyOHcv
|
||||
Sm1NUVNEa2l1RytSZklpdWJ3US9meTdFa2o1UVdoUFp3K21NeE5LbkhVTHkzeFl6MgpMd1ZmZnRq
|
||||
d1V1ZWFjdnFOUkNrTVhsQ2xPQURxZlQ4b1Nab2VEWGVoSHZsUHNMQ2VtR0JvVEt1cnNrSVM2OUYw
|
||||
eVBFSDVnemUwSCtmCjhGUk9zSW9LU3NWUTM0QjRTL2pvRTY3bnBzSlBUZEtzTlBKVHlRSURBUUFC
|
||||
bzRJQmt6Q0NBWTh3REFZRFZSMFRBUUgvQkFJd0FEQWQKQmdOVkhRNEVGZ1FVb0ZwWTc2cDV5b05E
|
||||
Ukd0UXB6VnVSODFVV1Ewd2djWUdBMVVkSXdTQnZqQ0J1NEFVdzYwK3B0WVJBRVdBWERwWApTb3B0
|
||||
M0RFTm5uR2hnWUNrZmpCOE1Rc3dDUVlEVlFRR0V3SlZVekU4TURvR0ExVUVDaE16U1c1MFpYSnVa
|
||||
WFFnUTI5eWNHOXlZWFJwCmIyNGdabTl5SUVGemMybG5ibVZrSUU1aGJXVnpJR0Z1WkNCT2RXMWla
|
||||
WEp6TVM4d0xRWURWUVFERXlaSlEwRk9UaUJVY21Ga1pXMWgKY21zZ1EyeGxZWEpwYm1kb2IzVnpa
|
||||
U0JRYVd4dmRDQkRRWUlnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTgpo
|
||||
WGt3RGdZRFZSMFBBUUgvQkFRREFnZUFNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5
|
||||
OWpjbXd1YVdOaGJtNHViM0puCkwzUnRZMmhmY0dsc2IzUXVZM0pzTUZFR0ExVWRJQVJLTUVnd0VB
|
||||
WU9Ld1lCQkFHQ3lSc0JCWU03REFvd05BWUlLd1lCQlFVSEFnRXcKS0RBbUJnZ3JCZ0VGQlFjQ0FS
|
||||
WWFhSFIwY0hNNkx5OWpZUzVwWTJGdWJpNXZjbWN2Y0dsc2IzUXdEUVlKS29aSWh2Y05BUUVMQlFB
|
||||
RApnZ0VCQUF1aloySWNSMkRWcnRhUnJBNTllTllDbDR4Y3NKTXU4RFFDSHYyOGZUZmkvQmlaWTRJ
|
||||
cjdGOWtGeTk2RDdPWjhvTFk1empmCjRkSHhGd0hQcUg4RGg2Sldzelh1SFcxWmEzWG1sMFBhSHhD
|
||||
V1JTMFhvbDhXc0hIcE55Z2pNQllmSjBvZFZNODg1VFoxRWw5U2l1RUgKbnluRkJnU21pRmM5OXVR
|
||||
ZC9ZRFJadUd2L0EwSHl2N3lSOXRrTEVkRDNBMXVOSkJXNFArSEpHcGRLa1lMMVE1clU3K29IVlB0
|
||||
TUtLSQozaUZrVUVzYk80NUFWZDd2UC9qLzdKdEFaUGI2a29PVjVsWmkySDFSTGNjR3d6ZGV6bmhK
|
||||
Z2QwTjlvYmIwdm5FNDEvVVNXYWZkV1JaClZHa3dQdXFUaGw3c0N0enJKSDhYWTB4Y3VtK2NmTHgy
|
||||
RUFJd1VuT2NhYjQ9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUlu
|
||||
Zm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,102 +0,0 @@
|
||||
Marks: Марк & записи
|
||||
smdID: 000000731526320367222-65535
|
||||
U-labels: xn------5cdd5bials4bfv, xn-----6kcc8ahakq0bft, xn---and--3vef9ckanw2cfz, xn---and-43de2cjamu8bfx, xn----7sbb1agajo6afr, xn--and--43de2cjamu8bfx, xn--and-5cdd5bials4bfv, xn--80aaufaim2afp
|
||||
notBefore: 2018-05-14T17:52:47.222Z
|
||||
notAfter: 2022-08-18T14:16:55.554Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il81ZWZi
|
||||
ZWYxMy0zYjRkLTQ4NDctOGRkMi1hMGRkMzMwM2RkMDEiPjxzbWQ6aWQ+MDAwMDAwNzMxNTI2MzIw
|
||||
MzY3MjIyLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo0Ny4yMjJaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDoxNjo1NS41NTRaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxNDExNTAzMDY1MzU1MTUwMzA2NTM1NS0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPtCc0LDRgNC6ICZhbXA7INC30LDQv9C40YHQuDwvbWFyazptYXJrTmFtZT48bWFy
|
||||
azpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpvcmc+0JDQs9C10L3RgtGB0YLQstC+
|
||||
PC9tYXJrOm9yZz48bWFyazphZGRyPjxtYXJrOnN0cmVldD7Qn9GA0L7RgdC/0LXQutGCINCS0LXR
|
||||
gNC90LDQtNGB0LrQvtCz0L4gMTU8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+0JzQvtGB0LrQstCw
|
||||
PC9tYXJrOmNpdHk+PG1hcms6cGM+MTE3NDg1PC9tYXJrOnBjPjxtYXJrOmNjPlJVPC9tYXJrOmNj
|
||||
PjwvbWFyazphZGRyPjwvbWFyazpob2xkZXI+PG1hcms6Y29udGFjdCB0eXBlPSJhZ2VudCI+PG1h
|
||||
cms6bmFtZT7QndCw0YLQsNC70YzRjyDQkNC90YLQvtC90L7QstCwPC9tYXJrOm5hbWU+PG1hcms6
|
||||
b3JnPtCQ0LPQtdC90YLRgdGC0LLQvjwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+
|
||||
0J/RgNC+0YHQv9C10LrRgiDQktC10YDQvdCw0LTRgdC60L7Qs9C+IDE1PC9tYXJrOnN0cmVldD48
|
||||
bWFyazpjaXR5PtCc0L7RgdC60LLQsDwvbWFyazpjaXR5PjxtYXJrOnBjPjExNzQ4NTwvbWFyazpw
|
||||
Yz48bWFyazpjYz5SVTwvbWFyazpjYz48L21hcms6YWRkcj48bWFyazp2b2ljZT4rNy45MTg4MjIx
|
||||
Njc0PC9tYXJrOnZvaWNlPjxtYXJrOmZheD4rNy45MTg4MjIxNjczPC9tYXJrOmZheD48bWFyazpl
|
||||
bWFpbD5pbmZvQGFnZW5jeS5ydTwvbWFyazplbWFpbD48L21hcms6Y29udGFjdD48bWFyazpsYWJl
|
||||
bD54bi0tLS0tLTVjZGQ1YmlhbHM0YmZ2PC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tLS02
|
||||
a2NjOGFoYWtxMGJmdDwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tLWFuZC0tM3ZlZjlja2Fu
|
||||
dzJjZno8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLS1hbmQtNDNkZTJjamFtdThiZng8L21h
|
||||
cms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLS0tN3NiYjFhZ2FqbzZhZnI8L21hcms6bGFiZWw+PG1h
|
||||
cms6bGFiZWw+eG4tLWFuZC0tNDNkZTJjamFtdThiZng8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+
|
||||
eG4tLWFuZC01Y2RkNWJpYWxzNGJmdjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tODBhYXVm
|
||||
YWltMmFmcDwvbWFyazpsYWJlbD48bWFyazpnb29kc0FuZFNlcnZpY2VzPtCz0LjRgtCw0YDQsCA8
|
||||
L21hcms6Z29vZHNBbmRTZXJ2aWNlcz48bWFyazpyZWZOdW0+MTIzNDwvbWFyazpyZWZOdW0+PG1h
|
||||
cms6cHJvRGF0ZT4yMDEzLTAxLTAxVDAwOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT48bWFyazpj
|
||||
Yz5VUzwvbWFyazpjYz48bWFyazpjb3VydE5hbWU+SG92ZTwvbWFyazpjb3VydE5hbWU+PC9tYXJr
|
||||
OmNvdXJ0PjwvbWFyazptYXJrPjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMu
|
||||
b3JnLzIwMDAvMDkveG1sZHNpZyMiIElkPSJfZmQyNjk0MDktMGVhMy00ODJiLWIyMDktMDNlZmFm
|
||||
MTVhMTQ3Ij48ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0
|
||||
aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1
|
||||
cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9y
|
||||
ZSNyc2Etc2hhMjU2Ii8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNWVmYmVmMTMtM2I0ZC00ODQ3LThk
|
||||
ZDItYTBkZDMzMDNkZDAxIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0i
|
||||
aHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48
|
||||
ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhj
|
||||
LWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRw
|
||||
Oi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+bEpl
|
||||
RHVaWDVIalB1VGZZRm9iOXMxdXNTVU96d2cvUGVaaDc4cjQ1V1Bjaz08L2RzOkRpZ2VzdFZhbHVl
|
||||
PjwvZHM6UmVmZXJlbmNlPjxkczpSZWZlcmVuY2UgVVJJPSIjXzM2ZmY4ODQ5LTAzMTQtNDgwZC1i
|
||||
YTg4LWFiNWI4NGU2OGU2MiI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09
|
||||
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jt
|
||||
cz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94
|
||||
bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPlJGWmZtb3ZVeW9qaDJTSU0rQXI0Snl6bkgw
|
||||
MGpPMkI0aGlNWnNyVFhtODA9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNp
|
||||
Z25lZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlIElkPSJfNTRiMmQ4MDctZGZmNC00MDY5LTg2NWQt
|
||||
NWU1YjdiOGQ5OGVmIj5GK1o0V3RZcjlCYk5WWHJlViswSzBpWDVQbnFPWjg3OHRhU0xDNjdzQ1ht
|
||||
OWFINVRDNFhHTnBxVjlUK2RrbU9tVUNJQ0lmTE5PVlZxCkhWMlNZNTR4T2U2NFNUaEtKK3pWOXJo
|
||||
RUVBK1NvZVFLSHVib3VMY0dMK3BYUmpWMVBETnBWeHdrUE45QnhGT21HbEh6anVxTHhtcXQKSCtT
|
||||
M1J4OFdmT0tXc3lURTdwMTJhd0g2dFVoYXBqV1A3U29PVTVxOExLUU9hdWJaaW4vYklPUHN1RTcy
|
||||
bmZIOTRKZnQ5REdLb0doUgpSaE81bVRUcUdSQlJIQjFqbU5sK1hmUGdSNHM0OGc0Uk01WTEydnIx
|
||||
NmRFMk14RDV4TEczZUVlVk9zS1p1OWpnVytPMXd3djZxbDZlClBYdFVyU0o4dTVKWjYrem5RNmdI
|
||||
bm5oMVp6V0xYVGZYYlhYa293PT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJf
|
||||
MzZmZjg4NDktMDMxNC00ODBkLWJhODgtYWI1Yjg0ZTY4ZTYyIj48ZHM6WDUwOURhdGE+PGRzOlg1
|
||||
MDlDZXJ0aWZpY2F0ZT5NSUlGT3pDQ0JDT2dBd0lCQWdJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24z
|
||||
cDdYSm0wVDAyRm9neEtDZk5oWmN3RFFZSktvWklodmNOCkFRRUxCUUF3ZkRFTE1Ba0dBMVVFQmhN
|
||||
Q1ZWTXhQREE2QmdOVkJBb1RNMGx1ZEdWeWJtVjBJRU52Y25CdmNtRjBhVzl1SUdadmNpQkIKYzNO
|
||||
cFoyNWxaQ0JPWVcxbGN5QmhibVFnVG5WdFltVnljekV2TUMwR0ExVUVBeE1tU1VOQlRrNGdWSEpo
|
||||
WkdWdFlYSnJJRU5zWldGeQphVzVuYUc5MWMyVWdVR2xzYjNRZ1EwRXdIaGNOTVRnd01qSTRNREF3
|
||||
TURBd1doY05Nak13TXpBeE1qTTFPVFU1V2pDQmp6RUxNQWtHCkExVUVCaE1DUWtVeElEQWVCZ05W
|
||||
QkFnVEYwSnlkWE56Wld4ekxVTmhjR2wwWVd3Z1VtVm5hVzl1TVJFd0R3WURWUVFIRXdoQ2NuVnoK
|
||||
YzJWc2N6RVJNQThHQTFVRUNoTUlSR1ZzYjJsMGRHVXhPREEyQmdOVkJBTVRMMGxEUVU1T0lGUk5R
|
||||
MGdnUVhWMGFHOXlhWHBsWkNCVQpjbUZrWlcxaGNtc2dVR2xzYjNRZ1ZtRnNhV1JoZEc5eU1JSUJJ
|
||||
akFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnhscDNLcFlIWDNXeUFzRmhT
|
||||
azNMd1dmbkdseG5VREZxRlpBM1VvdU1Zai9YaWdiTWtOZUVYSWpsa1JPS1Q0T1BHZlJ4L0xBeVJs
|
||||
UVEKakNNdjRxaGJrY1gxcDdhcjYzZmxxNFNaTlZjbDE1bDdoMHVUNThGelNmbmx6MHU1cmtIZkpJ
|
||||
bUQ0MyttYVAvOGd2MzZGUjI3alc4Ugo5d1k0aGsrV3M0SUIwaUZTZDhTWHYxS3I4dy9KbU1RU0Rr
|
||||
aXVHK1JmSWl1YndRL2Z5N0VrajVRV2hQWncrbU14TktuSFVMeTN4WXoyCkx3VmZmdGp3VXVlYWN2
|
||||
cU5SQ2tNWGxDbE9BRHFmVDhvU1pvZURYZWhIdmxQc0xDZW1HQm9US3Vyc2tJUzY5RjB5UEVINWd6
|
||||
ZTBIK2YKOEZST3NJb0tTc1ZRMzRCNFMvam9FNjducHNKUFRkS3NOUEpUeVFJREFRQUJvNElCa3pD
|
||||
Q0FZOHdEQVlEVlIwVEFRSC9CQUl3QURBZApCZ05WSFE0RUZnUVVvRnBZNzZwNXlvTkRSR3RRcHpW
|
||||
dVI4MVVXUTB3Z2NZR0ExVWRJd1NCdmpDQnU0QVV3NjArcHRZUkFFV0FYRHBYClNvcHQzREVObm5H
|
||||
aGdZQ2tmakI4TVFzd0NRWURWUVFHRXdKVlV6RThNRG9HQTFVRUNoTXpTVzUwWlhKdVpYUWdRMjl5
|
||||
Y0c5eVlYUnAKYjI0Z1ptOXlJRUZ6YzJsbmJtVmtJRTVoYldWeklHRnVaQ0JPZFcxaVpYSnpNUzh3
|
||||
TFFZRFZRUURFeVpKUTBGT1RpQlVjbUZrWlcxaApjbXNnUTJ4bFlYSnBibWRvYjNWelpTQlFhV3h2
|
||||
ZENCRFFZSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOCmhYa3dEZ1lE
|
||||
VlIwUEFRSC9CQVFEQWdlQU1EUUdBMVVkSHdRdE1Dc3dLYUFub0NXR0kyaDBkSEE2THk5amNtd3Vh
|
||||
V05oYm00dWIzSm4KTDNSdFkyaGZjR2xzYjNRdVkzSnNNRkVHQTFVZElBUktNRWd3RUFZT0t3WUJC
|
||||
QUdDeVJzQkJZTTdEQW93TkFZSUt3WUJCUVVIQWdFdwpLREFtQmdnckJnRUZCUWNDQVJZYWFIUjBj
|
||||
SE02THk5allTNXBZMkZ1Ymk1dmNtY3ZjR2xzYjNRd0RRWUpLb1pJaHZjTkFRRUxCUUFECmdnRUJB
|
||||
QXVqWjJJY1IyRFZydGFSckE1OWVOWUNsNHhjc0pNdThEUUNIdjI4ZlRmaS9CaVpZNElyN0Y5a0Z5
|
||||
OTZEN09aOG9MWTV6amYKNGRIeEZ3SFBxSDhEaDZKV3N6WHVIVzFaYTNYbWwwUGFIeENXUlMwWG9s
|
||||
OFdzSEhwTnlnak1CWWZKMG9kVk04ODVUWjFFbDlTaXVFSApueW5GQmdTbWlGYzk5dVFkL1lEUlp1
|
||||
R3YvQTBIeXY3eVI5dGtMRWREM0ExdU5KQlc0UCtISkdwZEtrWUwxUTVyVTcrb0hWUHRNS0tJCjNp
|
||||
RmtVRXNiTzQ1QVZkN3ZQL2ovN0p0QVpQYjZrb09WNWxaaTJIMVJMY2NHd3pkZXpuaEpnZDBOOW9i
|
||||
YjB2bkU0MS9VU1dhZmRXUloKVkdrd1B1cVRobDdzQ3R6ckpIOFhZMHhjdW0rY2ZMeDJFQUl3VW5P
|
||||
Y2FiND08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2Rz
|
||||
OlNpZ25hdHVyZT48L3NtZDpzaWduZWRNYXJrPg==
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,95 +0,0 @@
|
||||
Marks: الاختبار & لتقييم
|
||||
smdID: 000000911526320398360-65535
|
||||
U-labels: xn------nzeaagpf7azb2ppajr3fa, xn-----btdaafne4a7azpoaiq8ea, xn----ymcaaeld1a4a6onahp3ea, xn--mgbaadjcy1a8mmago8da
|
||||
notBefore: 2018-05-14T17:53:18.360Z
|
||||
notAfter: 2022-08-21T08:59:34.305Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il9mN2Zm
|
||||
YTA1ZC1lZTkwLTQ3OWMtOTkzNC1hZmI2MWY5MTMxNWUiPjxzbWQ6aWQ+MDAwMDAwOTExNTI2MzIw
|
||||
Mzk4MzYwLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzoxOC4zNjBaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODo1OTozNC4zMDVaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxNDIxNTAzMzA1NTg0MTUwMzMwNTU4NC0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPtin2YTYp9iu2KrYqNin2LEgJmFtcDsg2YTYqtmC2YrZitmFPC9tYXJrOm1hcmtO
|
||||
YW1lPjxtYXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+2YXZh9mG2K/Y
|
||||
syDYp9mE2YXYudmE2YjZhdin2KrZitipPC9tYXJrOm5hbWU+PG1hcms6b3JnPtin2K7Yqtio2KfY
|
||||
sTwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+2KzYudmB2LEg2KfYqNmGINiz2YrZ
|
||||
htin2KEgNzU8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+2YXZg9mG2KfYszwvbWFyazpjaXR5Pjxt
|
||||
YXJrOnBjPjI5MDA8L21hcms6cGM+PG1hcms6Y2M+TUE8L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1h
|
||||
cms6dm9pY2U+KzIxMi41MjI1MzkwNDA8L21hcms6dm9pY2U+PG1hcms6ZmF4PisyMTIuNTIyNTM5
|
||||
MDQxPC9tYXJrOmZheD48bWFyazplbWFpbD5pbmZvQGV4YW1wbGUuZXhhbXBsZTwvbWFyazplbWFp
|
||||
bD48L21hcms6aG9sZGVyPjxtYXJrOmxhYmVsPnhuLS0tLS0tbnplYWFncGY3YXpiMnBwYWpyM2Zh
|
||||
PC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tLS1idGRhYWZuZTRhN2F6cG9haXE4ZWE8L21h
|
||||
cms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLS0teW1jYWFlbGQxYTRhNm9uYWhwM2VhPC9tYXJrOmxh
|
||||
YmVsPjxtYXJrOmxhYmVsPnhuLS1tZ2JhYWRqY3kxYThtbWFnbzhkYTwvbWFyazpsYWJlbD48bWFy
|
||||
azpnb29kc0FuZFNlcnZpY2VzPti62YrYqtin2LE8L21hcms6Z29vZHNBbmRTZXJ2aWNlcz48bWFy
|
||||
azpyZWZOdW0+MTk4PC9tYXJrOnJlZk51bT48bWFyazpwcm9EYXRlPjIwMTUtMDktMTVUMDA6MDA6
|
||||
MDAuMDAwWjwvbWFyazpwcm9EYXRlPjxtYXJrOmNjPk1BPC9tYXJrOmNjPjxtYXJrOmNvdXJ0TmFt
|
||||
ZT7Yp9mE2K/Yp9ixINin2YTYqNmK2LbYp9ihPC9tYXJrOmNvdXJ0TmFtZT48L21hcms6Y291cnQ+
|
||||
PC9tYXJrOm1hcms+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAw
|
||||
MC8wOS94bWxkc2lnIyIgSWQ9Il9jZjNkMjI3Yy1kNmU4LTQzZGEtYmM4NC02MGViNzRiOWQ5YjUi
|
||||
PjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0
|
||||
cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhv
|
||||
ZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1z
|
||||
aGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI19mN2ZmYTA1ZC1lZTkwLTQ3OWMtOTkzNC1hZmI2
|
||||
MWY5MTMxNWUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8v
|
||||
d3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFu
|
||||
c2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMi
|
||||
Lz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cu
|
||||
dzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT53UTFJeXFUMTdk
|
||||
MStoTkg3aHBKUVQxUVRzS05QWHNUaC85TVJVb0E4a09nPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpS
|
||||
ZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfMjM4MDNmMTUtZWZiOS00NTM5LTg3ZjYtZGFj
|
||||
MDNhYjg3NTZlIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDov
|
||||
L3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpE
|
||||
aWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNz
|
||||
aGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+OGh2S3BCNkVLeEZMbWU5QThKMnJqVmVmU0FBcGpZcmdh
|
||||
Y29ORm4wNnlFbz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5m
|
||||
bz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il8zZWZkNjM4MS1hYTAxLTQ3ZDYtODZkNy0wNzIzYTJm
|
||||
MDYxYTciPmd3NVA3OFY5Sm9acmFBWk5kMEpmVEo2d2s3Qnp0YXAyREJmSzl3cng4YStJT3c4MVNl
|
||||
a3ZBZU9MTU5aRE84LzFBY0xjVjdZVXRxRDkKMG4yUC9BYzdiOG9FdmdMcHgyTlA5eWNLNHNVekJi
|
||||
WUZRb2Y3VHIvZHIzZmRFN3J1Ymx1cStaRWR0QlFuck9KUk9rakZsMkxOU01JNQp6Nlk2NDZsVnVx
|
||||
dy9IQWpPalB1ZithUVQ5S3VGTkFFMi9mTTg0cWFDNkx1ZE9EWmpHVlkreWRzUHo3eUlXa1ZWaUNl
|
||||
OGtMV1h3cWYzCktXZWwyQ0dYSjg3c3FJb3dtV1EvQ3hKWnJ3SXRKRk43djhLNmlWTG1Tam1zQldq
|
||||
QlE3UHNHaHR3bkk1ck1yaFVycXFkRE9JUzNGUmoKdlBCSDJlRktna0pEK1E5ZTFPaEtOQlZySGFU
|
||||
WHZSTkRkUXlOdmc9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il8yMzgwM2Yx
|
||||
NS1lZmI5LTQ1MzktODdmNi1kYWMwM2FiODc1NmUiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRp
|
||||
ZmljYXRlPk1JSUZPekNDQkNPZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBU
|
||||
MDJGb2d4S0NmTmhaY3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBE
|
||||
QTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpD
|
||||
Qk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhK
|
||||
cklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVGd3TWpJNE1EQXdNREF3V2hj
|
||||
Tk1qTXdNekF4TWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBK
|
||||
eWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pF
|
||||
Uk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYw
|
||||
YUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2tx
|
||||
aGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2Zu
|
||||
R2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012
|
||||
NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21h
|
||||
UC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJ
|
||||
aXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01Y
|
||||
bENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4
|
||||
RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJrekNDQVk4d0RB
|
||||
WURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdR
|
||||
MHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2Zq
|
||||
QjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhS
|
||||
cApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFR
|
||||
REV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJ
|
||||
Z0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFI
|
||||
L0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1
|
||||
YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01GRUdBMVVkSUFSS01FZ3dFQVlPS3dZQkJBR0N5UnNC
|
||||
QllNN0RBb3dOQVlJS3dZQkJRVUhBZ0V3CktEQW1CZ2dyQmdFRkJRY0NBUllhYUhSMGNITTZMeTlq
|
||||
WVM1cFkyRnViaTV2Y21jdmNHbHNiM1F3RFFZSktvWklodmNOQVFFTEJRQUQKZ2dFQkFBdWpaMklj
|
||||
UjJEVnJ0YVJyQTU5ZU5ZQ2w0eGNzSk11OERRQ0h2MjhmVGZpL0JpWlk0SXI3RjlrRnk5NkQ3T1o4
|
||||
b0xZNXpqZgo0ZEh4RndIUHFIOERoNkpXc3pYdUhXMVphM1htbDBQYUh4Q1dSUzBYb2w4V3NISHBO
|
||||
eWdqTUJZZkowb2RWTTg4NVRaMUVsOVNpdUVICm55bkZCZ1NtaUZjOTl1UWQvWURSWnVHdi9BMEh5
|
||||
djd5Ujl0a0xFZEQzQTF1TkpCVzRQK0hKR3BkS2tZTDFRNXJVNytvSFZQdE1LS0kKM2lGa1VFc2JP
|
||||
NDVBVmQ3dlAvai83SnRBWlBiNmtvT1Y1bFppMkgxUkxjY0d3emRlem5oSmdkME45b2JiMHZuRTQx
|
||||
L1VTV2FmZFdSWgpWR2t3UHVxVGhsN3NDdHpySkg4WFkweGN1bStjZkx4MkVBSXdVbk9jYWI0PTwv
|
||||
ZHM6WDUwOUNlcnRpZmljYXRlPjwvZHM6WDUwOURhdGE+PC9kczpLZXlJbmZvPjwvZHM6U2lnbmF0
|
||||
dXJlPjwvc21kOnNpZ25lZE1hcms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,93 +0,0 @@
|
||||
Marks: 证明&标志
|
||||
smdID: 000000701526320361385-65535
|
||||
U-labels: xn----z33bn7p06br59e, xn--and-qy3f87yx4cc34g, xn--m6t41lkubhz2e
|
||||
notBefore: 2018-05-14T17:52:41.385Z
|
||||
notAfter: 2022-08-21T08:12:01.925Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8yNDI5
|
||||
NTA5NC0zN2U3LTQwOWQtODM1OS01ZTI1ZjFhNzkxYjQiPjxzbWQ6aWQ+MDAwMDAwNzAxNTI2MzIw
|
||||
MzYxMzg1LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo0MS4zODVaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjowMS45MjVaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxNDUxNTAzMDY0NjA2MTUwMzA2NDYwNi0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPuivgeaYjiZhbXA75qCH5b+XPC9tYXJrOm1hcmtOYW1lPjxtYXJrOmhvbGRlciBl
|
||||
bnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+5p2O5bCP5pa5PC9tYXJrOm5hbWU+PG1hcms6
|
||||
b3JnPua1i+ivlTwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+6aaZ5riv5Lic6Lev
|
||||
NuWPt++8jDXlj7fmpbzvvIw45Y+35a6kIDwvbWFyazpzdHJlZXQ+PG1hcms6Y2l0eT7pnZLlspvl
|
||||
uII8L21hcms6Y2l0eT48bWFyazpwYz4xMDAwPC9tYXJrOnBjPjxtYXJrOmNjPkNOPC9tYXJrOmNj
|
||||
PjwvbWFyazphZGRyPjxtYXJrOnZvaWNlPis4Ni4xMDg0NjU3MTczPC9tYXJrOnZvaWNlPjxtYXJr
|
||||
OmZheD4rODYuMTA4NDY1NzE3MzwvbWFyazpmYXg+PG1hcms6ZW1haWw+aW5mb0BleGFtcGxlLmV4
|
||||
YW1wbGU8L21hcms6ZW1haWw+PC9tYXJrOmhvbGRlcj48bWFyazpsYWJlbD54bi0tLS16MzNibjdw
|
||||
MDZicjU5ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tYW5kLXF5M2Y4N3l4NGNjMzRnPC9t
|
||||
YXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1tNnQ0MWxrdWJoejJlPC9tYXJrOmxhYmVsPjxtYXJr
|
||||
Omdvb2RzQW5kU2VydmljZXM+IOWQieS7ljwvbWFyazpnb29kc0FuZFNlcnZpY2VzPjxtYXJrOnJl
|
||||
Zk51bT4xMjM0PC9tYXJrOnJlZk51bT48bWFyazpwcm9EYXRlPjIwMTMtMDEtMDFUMDA6MDA6MDAu
|
||||
MDAwWjwvbWFyazpwcm9EYXRlPjxtYXJrOmNjPlVTPC9tYXJrOmNjPjxtYXJrOmNvdXJ0TmFtZT5U
|
||||
ZXN0IENvdXJ0PC9tYXJrOmNvdXJ0TmFtZT48L21hcms6Y291cnQ+PC9tYXJrOm1hcms+PGRzOlNp
|
||||
Z25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9
|
||||
Il9hM2YzMjFiOC05OTQ3LTQ3OTItOWM4OS03ZTk5OTNkYTczNmIiPjxkczpTaWduZWRJbmZvPjxk
|
||||
czpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAw
|
||||
MS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6
|
||||
Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJl
|
||||
bmNlIFVSST0iI18yNDI5NTA5NC0zN2U3LTQwOWQtODM1OS01ZTI1ZjFhNzkxYjQiPjxkczpUcmFu
|
||||
c2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5
|
||||
L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJo
|
||||
dHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+
|
||||
PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1s
|
||||
ZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT50Z1MwY293eFdGdTk4dVcrSjNydjd4WndXZVRC
|
||||
cDdja0lsaUJodUtNY20wPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVy
|
||||
ZW5jZSBVUkk9IiNfNTQ1MDk4N2YtNjYwYS00OTE3LWI3NTktM2ZhNDczYjhmNTBiIj48ZHM6VHJh
|
||||
bnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8x
|
||||
MC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3Jp
|
||||
dGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0
|
||||
VmFsdWU+UEZKUEN3ZGEraE9YYXl1ZStjbEM5VjYwaFNUS3Q1cDdNRGRzZzcram1Saz08L2RzOkRp
|
||||
Z2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFs
|
||||
dWUgSWQ9Il81ZjE3M2ZmNy1hY2JmLTRiM2MtOGUxYy1lNjNlYTFlODZjNDAiPlJKMWQ4L0V3Znd6
|
||||
cFJPYytsNTVVY0lKb2wwUEZIZnBuVEZDeXE4Y3NkVng0TUJjN1AwNXVuazlSbU5wVVF0ejJTekQ3
|
||||
NDArUWdGWnIKc2VUdTI4aWFqQTBNYnpDY2N3NThERlY0MkhBUkJMYjFJaVZnRHBBRWVtbVlRd3VO
|
||||
eFpjQzE3eHg3QkIzeXhrTXd0TDNnSnBmQkd3TApYMEdTamRBQjRSWkVVMDgrQnl5ajdmMGErdkFB
|
||||
NmZHdGU2MU1sUGhpdElic2JKMEZRUkVxSk1Mb28xTnRLSEM1ekJveENEc3dVQnFYClhmeDduamgy
|
||||
UmFRWGRTNmt0bjdNcW5PQko1eFRmTTJ4a2V0d2R3emkzY1FlN2ZNOXkvQy8wbytaU1VZOWRucmh6
|
||||
cUc5N2ZBL0R4UDgKY09Lekx3YTlrclVTOERXWVhQc1hUdTJjek5XNUdwcENrWlJPWWc9PTwvZHM6
|
||||
U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il81NDUwOTg3Zi02NjBhLTQ5MTctYjc1OS0z
|
||||
ZmE0NzNiOGY1MGIiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZPekNDQkNP
|
||||
Z0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhaY3dEUVlK
|
||||
S29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5
|
||||
Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0
|
||||
WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkx
|
||||
YzJVZ1VHbHNiM1FnUTBFd0hoY05NVGd3TWpJNE1EQXdNREF3V2hjTk1qTXdNekF4TWpNMU9UVTVX
|
||||
akNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZ
|
||||
V3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNi
|
||||
MmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmta
|
||||
VzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FR
|
||||
OEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlq
|
||||
L1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0
|
||||
U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3
|
||||
WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBa
|
||||
dyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhl
|
||||
aEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9q
|
||||
b0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJrekNDQVk4d0RBWURWUjBUQVFIL0JBSXdBREFk
|
||||
CkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNC
|
||||
dTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pW
|
||||
VXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxu
|
||||
Ym1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmta
|
||||
VzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMy
|
||||
dEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRI
|
||||
d1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNi
|
||||
M1F1WTNKc01GRUdBMVVkSUFSS01FZ3dFQVlPS3dZQkJBR0N5UnNCQllNN0RBb3dOQVlJS3dZQkJR
|
||||
VUhBZ0V3CktEQW1CZ2dyQmdFRkJRY0NBUllhYUhSMGNITTZMeTlqWVM1cFkyRnViaTV2Y21jdmNH
|
||||
bHNiM1F3RFFZSktvWklodmNOQVFFTEJRQUQKZ2dFQkFBdWpaMkljUjJEVnJ0YVJyQTU5ZU5ZQ2w0
|
||||
eGNzSk11OERRQ0h2MjhmVGZpL0JpWlk0SXI3RjlrRnk5NkQ3T1o4b0xZNXpqZgo0ZEh4RndIUHFI
|
||||
OERoNkpXc3pYdUhXMVphM1htbDBQYUh4Q1dSUzBYb2w4V3NISHBOeWdqTUJZZkowb2RWTTg4NVRa
|
||||
MUVsOVNpdUVICm55bkZCZ1NtaUZjOTl1UWQvWURSWnVHdi9BMEh5djd5Ujl0a0xFZEQzQTF1TkpC
|
||||
VzRQK0hKR3BkS2tZTDFRNXJVNytvSFZQdE1LS0kKM2lGa1VFc2JPNDVBVmQ3dlAvai83SnRBWlBi
|
||||
NmtvT1Y1bFppMkgxUkxjY0d3emRlem5oSmdkME45b2JiMHZuRTQxL1VTV2FmZFdSWgpWR2t3UHVx
|
||||
VGhsN3NDdHpySkg4WFkweGN1bStjZkx4MkVBSXdVbk9jYWI0PTwvZHM6WDUwOUNlcnRpZmljYXRl
|
||||
PjwvZHM6WDUwOURhdGE+PC9kczpLZXlJbmZvPjwvZHM6U2lnbmF0dXJlPjwvc21kOnNpZ25lZE1h
|
||||
cms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,96 +0,0 @@
|
||||
Marks: Test & Validate
|
||||
smdID: 000000501526320343199-65535
|
||||
U-labels: test---validate, test--validate, test-and-validate, test-andvalidate, test-validate, testand-validate, testandvalidate, testvalidate
|
||||
notBefore: 2018-05-14T17:52:23.199Z
|
||||
notAfter: 2022-08-21T08:12:19.525Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il81NmY5
|
||||
ZjZiMC1kZTAxLTQyYzctYTRlNS1mNTdiZmQ5M2Q5NDQiPjxzbWQ6aWQ+MDAwMDAwNTAxNTI2MzIw
|
||||
MzQzMTk5LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MjoyMy4xOTlaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjoxOS41MjVaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxMzYxNTAzMDU2NDc0MTUwMzA1NjQ3NC0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPlRlc3QgJmFtcDsgVmFsaWRhdGU8L21hcms6bWFya05hbWU+PG1hcms6aG9sZGVy
|
||||
IGVudGl0bGVtZW50PSJvd25lciI+PG1hcms6bmFtZT5GcmFuayBXaGl0ZTwvbWFyazpuYW1lPjxt
|
||||
YXJrOm9yZz5UZXN0IE9yZ2FuaXphdGlvbjwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJl
|
||||
ZXQ+V2VzdCBBcnF1ZXMgQXZlbnVlIDEwMSA8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+U3Vubnl2
|
||||
YWxlPC9tYXJrOmNpdHk+PG1hcms6c3A+Q0E8L21hcms6c3A+PG1hcms6cGM+MTAwMjMtMzI0MTwv
|
||||
bWFyazpwYz48bWFyazpjYz5VUzwvbWFyazpjYz48L21hcms6YWRkcj48bWFyazp2b2ljZT4rMS4z
|
||||
MDE0NTU2NjAwPC9tYXJrOnZvaWNlPjxtYXJrOmZheD4rMS4zMDE0NTU2NjAxPC9tYXJrOmZheD48
|
||||
bWFyazplbWFpbD5pbmZvQGV4YW1wbGUuZXhhbXBsZTwvbWFyazplbWFpbD48L21hcms6aG9sZGVy
|
||||
PjxtYXJrOmxhYmVsPnRlc3QtLS12YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0
|
||||
LS12YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFy
|
||||
azpsYWJlbD48bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmxh
|
||||
YmVsPnRlc3QtdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdGFuZC12YWxpZGF0
|
||||
ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0YW5kdmFsaWRhdGU8L21hcms6bGFiZWw+PG1h
|
||||
cms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmdvb2RzQW5kU2VydmljZXM+
|
||||
Z29sZDwvbWFyazpnb29kc0FuZFNlcnZpY2VzPjxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51
|
||||
bT48bWFyazpwcm9EYXRlPjIwMTMtMDEtMDFUMDA6MDA6MDAuMDAwWjwvbWFyazpwcm9EYXRlPjxt
|
||||
YXJrOmNjPlVTPC9tYXJrOmNjPjxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT48
|
||||
L21hcms6Y291cnQ+PC9tYXJrOm1hcms+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3
|
||||
dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mNTdiOTJiYi05ZjMzLTQ2MDAtODAwMi0z
|
||||
ZmIyODY5MmFlOGYiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFs
|
||||
Z29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNp
|
||||
Z25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNp
|
||||
Zy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI181NmY5ZjZiMC1kZTAxLTQy
|
||||
YzctYTRlNS1mNTdiZmQ5M2Q5NDQiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3Jp
|
||||
dGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVy
|
||||
ZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3ht
|
||||
bC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09
|
||||
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1
|
||||
ZT5Qby90dDBlVzZzdVpBTjIyaWxocHc4YjZUdVVuNzJ1R0NGVFdnUm1OM21ZPTwvZHM6RGlnZXN0
|
||||
VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYmUyZjIxYTYtZDA3NC00
|
||||
ZmI0LWE5NTktMmNhYmUxODMxY2Q1Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29y
|
||||
aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFu
|
||||
c2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
|
||||
LzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+b3c1aVhYdHhlVW5QNEswWXdJa24y
|
||||
M2JWa0tHOVU1Q1FzSVoxbUZPZGFsWT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwv
|
||||
ZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il84N2U2NGVmMy1kODMxLTQyMzkt
|
||||
Yjg3ZC05NjI2ZTIzNWQzNTUiPlUyWmgwR3Nnb1dtTUVkbEIvOTNDNmhKWUJ5Q3YyU3lKR0NEcDZw
|
||||
NzhKWWxsajA1N200YlRFUllOYURCQzduTnNsUHI3UzYrakJHQTUKczBmSzNGZ0V3UkVMK2VjRWdp
|
||||
WU1UMktaK1pza3VRMVIvQk0wMUZ3VTMvUDJZVzJtb1NEY0JGZ2VGNUgyaXFxeTdXY0N4NkI0OE5H
|
||||
cgpmdE05NHJ5Vmc3SFhXVFBvWUhCejVmNWFZUU9sQWcwU1ZQeWhieWtaUnBIZHJ4aXhsTmRYM3JU
|
||||
djArUDdSeks5clowbkpQdzdBTVI0CnZMZjNuY29RMVNpS2ZKMkVBRml4WmFLbTNoMFJUdStGNGZL
|
||||
K2FRUk1CTnpmdERNeEY2WTVjTGt4andPMGJ6TnJvTlVpN0QyTjhseDgKYWxmY3N1QjkzbjBydmtN
|
||||
UElEcW90YnZvM0ZDZ09FYXhMRlVFcFE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8g
|
||||
SWQ9Il9iZTJmMjFhNi1kMDc0LTRmYjQtYTk1OS0yY2FiZTE4MzFjZDUiPjxkczpYNTA5RGF0YT48
|
||||
ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZPekNDQkNPZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0
|
||||
QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhaY3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0Ex
|
||||
VUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lC
|
||||
QgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0
|
||||
Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVGd3TWpJ
|
||||
NE1EQXdNREF3V2hjTk1qTXdNekF4TWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURB
|
||||
ZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hD
|
||||
Y25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVP
|
||||
SUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5
|
||||
TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5
|
||||
QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngv
|
||||
TEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVy
|
||||
a0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0pt
|
||||
TVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andV
|
||||
dWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQ
|
||||
RUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80
|
||||
SUJrekNDQVk4d0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJH
|
||||
dFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNE
|
||||
RU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhR
|
||||
Z1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhK
|
||||
ek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNC
|
||||
UWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhr
|
||||
d0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlq
|
||||
Y213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01GRUdBMVVkSUFSS01FZ3dFQVlP
|
||||
S3dZQkJBR0N5UnNCQllNN0RBb3dOQVlJS3dZQkJRVUhBZ0V3CktEQW1CZ2dyQmdFRkJRY0NBUllh
|
||||
YUhSMGNITTZMeTlqWVM1cFkyRnViaTV2Y21jdmNHbHNiM1F3RFFZSktvWklodmNOQVFFTEJRQUQK
|
||||
Z2dFQkFBdWpaMkljUjJEVnJ0YVJyQTU5ZU5ZQ2w0eGNzSk11OERRQ0h2MjhmVGZpL0JpWlk0SXI3
|
||||
RjlrRnk5NkQ3T1o4b0xZNXpqZgo0ZEh4RndIUHFIOERoNkpXc3pYdUhXMVphM1htbDBQYUh4Q1dS
|
||||
UzBYb2w4V3NISHBOeWdqTUJZZkowb2RWTTg4NVRaMUVsOVNpdUVICm55bkZCZ1NtaUZjOTl1UWQv
|
||||
WURSWnVHdi9BMEh5djd5Ujl0a0xFZEQzQTF1TkpCVzRQK0hKR3BkS2tZTDFRNXJVNytvSFZQdE1L
|
||||
S0kKM2lGa1VFc2JPNDVBVmQ3dlAvai83SnRBWlBiNmtvT1Y1bFppMkgxUkxjY0d3emRlem5oSmdk
|
||||
ME45b2JiMHZuRTQxL1VTV2FmZFdSWgpWR2t3UHVxVGhsN3NDdHpySkg4WFkweGN1bStjZkx4MkVB
|
||||
SXdVbk9jYWI0PTwvZHM6WDUwOUNlcnRpZmljYXRlPjwvZHM6WDUwOURhdGE+PC9kczpLZXlJbmZv
|
||||
PjwvZHM6U2lnbmF0dXJlPjwvc21kOnNpZ25lZE1hcms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: Essai & évaluation
|
||||
smdID: 000000631526320349683-65535
|
||||
U-labels: xn--essai---valuation-itb, xn--essai--valuation-hqb, xn--essai-and-valuation-kzb, xn--essai-andvaluation-jwb, xn--essai-valuation-gnb, xn--essaiand-valuation-jwb, xn--essaiandvaluation-itb, xn--essaiet-valuation-itb, xn--essaietvaluation-hqb, xn--essaivaluation-fkb
|
||||
notBefore: 2018-05-14T17:52:29.683Z
|
||||
notAfter: 2022-08-21T08:12:14.116Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8wNDQ1
|
||||
ODM5Ni1hOTRlLTRlNzktYWQ1Zi1hZjMxYmE2NTIwNWEiPjxzbWQ6aWQ+MDAwMDAwNjMxNTI2MzIw
|
||||
MzQ5NjgzLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MjoyOS42ODNaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjoxNC4xMTZaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxMzgxNTAzMDYwNDk2MTUwMzA2MDQ5Ni0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPkVzc2FpICZhbXA7IMOpdmFsdWF0aW9uPC9tYXJrOm1hcmtOYW1lPjxtYXJrOmhv
|
||||
bGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+SmVhbiBMZWJsYW5jPC9tYXJrOm5h
|
||||
bWU+PG1hcms6b3JnPk9yYW5pc2F0aW9uIGRlIHRlc3Q8L21hcms6b3JnPjxtYXJrOmFkZHI+PG1h
|
||||
cms6c3RyZWV0PlJVRSBST0dORSA0MCA8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+QVJUT0lTPC9t
|
||||
YXJrOmNpdHk+PG1hcms6cGM+MjEzMDE8L21hcms6cGM+PG1hcms6Y2M+RlI8L21hcms6Y2M+PC9t
|
||||
YXJrOmFkZHI+PG1hcms6dm9pY2U+KzMzLjI2NDk5NTAzMjwvbWFyazp2b2ljZT48bWFyazpmYXg+
|
||||
KzMzLjI2NDk5NTAzMzwvbWFyazpmYXg+PG1hcms6ZW1haWw+aW5mb0BleGFtcGxlLmV4YW1wbGU8
|
||||
L21hcms6ZW1haWw+PC9tYXJrOmhvbGRlcj48bWFyazpsYWJlbD54bi0tZXNzYWktLS12YWx1YXRp
|
||||
b24taXRiPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1lc3NhaS0tdmFsdWF0aW9uLWhxYjwv
|
||||
bWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXNzYWktYW5kLXZhbHVhdGlvbi1remI8L21hcms6
|
||||
bGFiZWw+PG1hcms6bGFiZWw+eG4tLWVzc2FpLWFuZHZhbHVhdGlvbi1qd2I8L21hcms6bGFiZWw+
|
||||
PG1hcms6bGFiZWw+eG4tLWVzc2FpLXZhbHVhdGlvbi1nbmI8L21hcms6bGFiZWw+PG1hcms6bGFi
|
||||
ZWw+eG4tLWVzc2FpYW5kLXZhbHVhdGlvbi1qd2I8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4t
|
||||
LWVzc2FpYW5kdmFsdWF0aW9uLWl0YjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXNzYWll
|
||||
dC12YWx1YXRpb24taXRiPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1lc3NhaWV0dmFsdWF0
|
||||
aW9uLWhxYjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXNzYWl2YWx1YXRpb24tZmtiPC9t
|
||||
YXJrOmxhYmVsPjxtYXJrOmdvb2RzQW5kU2VydmljZXM+Z3VpdGFyZTwvbWFyazpnb29kc0FuZFNl
|
||||
cnZpY2VzPjxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT48bWFyazpwcm9EYXRlPjIwMTMt
|
||||
MDEtMDFUMDA6MDA6MDAuMDAwWjwvbWFyazpwcm9EYXRlPjxtYXJrOmNjPlVTPC9tYXJrOmNjPjxt
|
||||
YXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT48L21hcms6Y291cnQ+PC9tYXJrOm1h
|
||||
cms+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxk
|
||||
c2lnIyIgSWQ9Il9mZWEwOTIwMS1kMzQ0LTQzNjQtOGQwYS05NmQzNjJlYjZkMTciPjxkczpTaWdu
|
||||
ZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53
|
||||
My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0
|
||||
aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48
|
||||
ZHM6UmVmZXJlbmNlIFVSST0iI18wNDQ1ODM5Ni1hOTRlLTRlNzktYWQ1Zi1hZjMxYmE2NTIwNWEi
|
||||
PjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y
|
||||
Zy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxn
|
||||
b3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRy
|
||||
YW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIw
|
||||
MDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT4vUjJRYUhFUEFDSzlvY3FJZ2Ri
|
||||
UVFuUlM1YzBTc0h4RjZYTUpGb1p0SytVPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+
|
||||
PGRzOlJlZmVyZW5jZSBVUkk9IiNfYWY4NmNiNmUtOTM0Yi00YTk3LThhYjgtNzBmNGU1NDI2OGNj
|
||||
Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5v
|
||||
cmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRo
|
||||
b2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48
|
||||
ZHM6RGlnZXN0VmFsdWU+c1NkY0tlbmlMQU5TOEJFcFVCUVU2bHBGS0F2MFJBT2RNRncwRFdoYzZF
|
||||
Yz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2ln
|
||||
bmF0dXJlVmFsdWUgSWQ9Il9jODQ2YWY0Ny04NjAwLTQwNjUtYWI3Ni0xMjU0MzhiZmUzMGIiPmRP
|
||||
Vm84amZMMS84YUdnQnhmTjVZeUNIZ240R3ByVFJyUFRqQVkzT2VkNnF6N2NNYmxFcTlUaU1aM2Nv
|
||||
eWRwbmY4Mm04UGp1cVJmcFUKODhLenBmVnZMSVhXcUlCTlp1Mm5sVGg5SDFUUFZ1R0xjUDVGZ0M2
|
||||
ZHVrV0VnQzJiUm1KZjhwazgzMWFHVElKOVJ3YkR0WHlvVmxRcQp3bWFGQzNLeDA0azlFaFFSdUs0
|
||||
UldXdW13K3VXZGc1djFxZjhOWU5uaVhBTFo0SWx3RGZYczV2THhjMCt1RTNOM09tMS80dUNBMjE1
|
||||
Cmlyb0Fzc2RqMm5nRk9ZUE1nVHNjanpuMGo3MnNIS3c4S0J4MUd6OUNOelpheFZpZFdiU1FxVnFV
|
||||
T1VnSXJiSFNHQ25NZjVRV2ppZG0KOGRqZDV6SUZ0VHBXT1hQNUdjbmg2bEVWa3FqdDBWaTJvazBT
|
||||
WWc9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9hZjg2Y2I2ZS05MzRiLTRh
|
||||
OTctOGFiOC03MGY0ZTU0MjY4Y2MiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1J
|
||||
SUZPekNDQkNPZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0Nm
|
||||
TmhaY3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFv
|
||||
VE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lC
|
||||
aGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5
|
||||
CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVGd3TWpJNE1EQXdNREF3V2hjTk1qTXdNekF4
|
||||
TWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6
|
||||
TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVF
|
||||
Q2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxa
|
||||
Q0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJB
|
||||
UUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFG
|
||||
WkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFw
|
||||
N2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZS
|
||||
MjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3
|
||||
RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZU
|
||||
OG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1Nz
|
||||
VlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJrekNDQVk4d0RBWURWUjBUQVFI
|
||||
L0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFV
|
||||
ZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZ
|
||||
RFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05
|
||||
eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZP
|
||||
VGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9h
|
||||
ZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VB
|
||||
TURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0
|
||||
WTJoZmNHbHNiM1F1WTNKc01GRUdBMVVkSUFSS01FZ3dFQVlPS3dZQkJBR0N5UnNCQllNN0RBb3dO
|
||||
QVlJS3dZQkJRVUhBZ0V3CktEQW1CZ2dyQmdFRkJRY0NBUllhYUhSMGNITTZMeTlqWVM1cFkyRnVi
|
||||
aTV2Y21jdmNHbHNiM1F3RFFZSktvWklodmNOQVFFTEJRQUQKZ2dFQkFBdWpaMkljUjJEVnJ0YVJy
|
||||
QTU5ZU5ZQ2w0eGNzSk11OERRQ0h2MjhmVGZpL0JpWlk0SXI3RjlrRnk5NkQ3T1o4b0xZNXpqZgo0
|
||||
ZEh4RndIUHFIOERoNkpXc3pYdUhXMVphM1htbDBQYUh4Q1dSUzBYb2w4V3NISHBOeWdqTUJZZkow
|
||||
b2RWTTg4NVRaMUVsOVNpdUVICm55bkZCZ1NtaUZjOTl1UWQvWURSWnVHdi9BMEh5djd5Ujl0a0xF
|
||||
ZEQzQTF1TkpCVzRQK0hKR3BkS2tZTDFRNXJVNytvSFZQdE1LS0kKM2lGa1VFc2JPNDVBVmQ3dlAv
|
||||
ai83SnRBWlBiNmtvT1Y1bFppMkgxUkxjY0d3emRlem5oSmdkME45b2JiMHZuRTQxL1VTV2FmZFdS
|
||||
WgpWR2t3UHVxVGhsN3NDdHpySkg4WFkweGN1bStjZkx4MkVBSXdVbk9jYWI0PTwvZHM6WDUwOUNl
|
||||
cnRpZmljYXRlPjwvZHM6WDUwOURhdGE+PC9kczpLZXlJbmZvPjwvZHM6U2lnbmF0dXJlPjwvc21k
|
||||
OnNpZ25lZE1hcms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: Сертификация & логотип
|
||||
smdID: 000000671526320355540-65535
|
||||
U-labels: xn------5cdshvabepr3bbqcpum2a9b4n, xn-----6kcogsabdop0bbpcotl1a7b8m, xn---and--3ve0aj1aabgrv9bbscrwo4a3c9n, xn---and-43dwiyabfqt6bbrcqvn3a1c0o, xn----7sbkfpabcnn7abocnsk0a5bzn, xn--and--43dwiyabfqt6bbrcqvn3a1c0o, xn--and-5cdshvabepr3bbqcpum2a9b4n, xn--80agemabbml4abncmrjz3b2m
|
||||
notBefore: 2018-05-14T17:52:35.540Z
|
||||
notAfter: 2022-08-21T08:12:08.921Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il82MDE3
|
||||
YWQxYy01NzE0LTRjMDEtOTg0OC1iZWYyZjVmYzc2NTUiPjxzbWQ6aWQ+MDAwMDAwNjcxNTI2MzIw
|
||||
MzU1NTQwLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MjozNS41NDBaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjowOC45MjFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxNDAxNTAzMDYzMjQ3MTUwMzA2MzI0Ny0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPtCh0LXRgNGC0LjRhNC40LrQsNGG0LjRjyAmYW1wOyDQu9C+0LPQvtGC0LjQvzwv
|
||||
bWFyazptYXJrTmFtZT48bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpuYW1l
|
||||
PtCd0LDRgtCw0LvRjNGPINCQ0L3RgtC+0L3QvtCy0LA8L21hcms6bmFtZT48bWFyazpvcmc+0JDQ
|
||||
vdGC0L7QvdC+0LLQsDwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+0J/RgNC+0YHQ
|
||||
v9C10LrRgiDQktC10YDQvdCw0LTRgdC60L7Qs9C+IDE1PC9tYXJrOnN0cmVldD48bWFyazpjaXR5
|
||||
PtCc0L7RgdC60LLQsDwvbWFyazpjaXR5PjxtYXJrOnBjPjExNzQ4NTwvbWFyazpwYz48bWFyazpj
|
||||
Yz5SVTwvbWFyazpjYz48L21hcms6YWRkcj48bWFyazp2b2ljZT4rNy45MTg4MjIxNjc0PC9tYXJr
|
||||
OnZvaWNlPjxtYXJrOmVtYWlsPmluZm9AZXhhbXBsZS5leGFtcGxlPC9tYXJrOmVtYWlsPjwvbWFy
|
||||
azpob2xkZXI+PG1hcms6bGFiZWw+eG4tLS0tLS01Y2RzaHZhYmVwcjNiYnFjcHVtMmE5YjRuPC9t
|
||||
YXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tLS02a2NvZ3NhYmRvcDBiYnBjb3RsMWE3YjhtPC9t
|
||||
YXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tYW5kLS0zdmUwYWoxYWFiZ3J2OWJic2Nyd280YTNj
|
||||
OW48L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLS1hbmQtNDNkd2l5YWJmcXQ2YmJyY3F2bjNh
|
||||
MWMwbzwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tLS03c2JrZnBhYmNubjdhYm9jbnNrMGE1
|
||||
YnpuPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1hbmQtLTQzZHdpeWFiZnF0NmJicmNxdm4z
|
||||
YTFjMG88L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWFuZC01Y2RzaHZhYmVwcjNiYnFjcHVt
|
||||
MmE5YjRuPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS04MGFnZW1hYmJtbDRhYm5jbXJqejNi
|
||||
Mm08L21hcms6bGFiZWw+PG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5ndWl0YXI8L21hcms6Z29vZHNB
|
||||
bmRTZXJ2aWNlcz48bWFyazpyZWZOdW0+MTIzNDwvbWFyazpyZWZOdW0+PG1hcms6cHJvRGF0ZT4y
|
||||
MDEzLTAxLTAxVDAwOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT48bWFyazpjYz5VUzwvbWFyazpj
|
||||
Yz48bWFyazpjb3VydE5hbWU+SG92ZTwvbWFyazpjb3VydE5hbWU+PC9tYXJrOmNvdXJ0PjwvbWFy
|
||||
azptYXJrPjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkv
|
||||
eG1sZHNpZyMiIElkPSJfZTU4ZDE5MzAtNjRjNi00N2EyLTk3ZDItMGU3ZGQ3ODY4NjUxIj48ZHM6
|
||||
U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93
|
||||
d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVNZXRob2QgQWxn
|
||||
b3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2Etc2hhMjU2
|
||||
Ii8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNjAxN2FkMWMtNTcxNC00YzAxLTk4NDgtYmVmMmY1ZmM3
|
||||
NjU1Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53
|
||||
My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJhbnNmb3Jt
|
||||
IEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9k
|
||||
czpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y
|
||||
Zy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+T0NFUlcxYWVrdkhUWWZZ
|
||||
UUZadVkwbUdpanlXYWwyQ09heklZRk9NTUZCTT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJl
|
||||
bmNlPjxkczpSZWZlcmVuY2UgVVJJPSIjXzE5ODYwMmNjLWFiNGItNGEzNC04NjAzLTUzZGM0MzVk
|
||||
YmVmNSI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cu
|
||||
dzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0
|
||||
TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2
|
||||
Ii8+PGRzOkRpZ2VzdFZhbHVlPlVNbW5uazB2MTM1NzJEN3FxMVYzZXI1eUtQcmNpbkRYcHNVUXVE
|
||||
Z3lURDQ9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEluZm8+PGRz
|
||||
OlNpZ25hdHVyZVZhbHVlIElkPSJfZTVmODNjZGItZTgxNi00NDRkLTg3NDktODZkODZiY2YyNjBh
|
||||
Ij5xQ1I1VDFiamV1TVJSZWgvNTRSeEphTUdIdTNSNmJlVy94cWRiMUJ2bDN0Y3VXU3FtYVdEaGow
|
||||
SXlWQVlibURQYS8ybHJoYmpMVTI2CnRacG9aWGRuU2lOdERkQ3F5NmN3WVdITlRpU1NTdDc2dzA4
|
||||
cncrV21GOGQ3UklnOGdPQVdUUWxhM0RNdk4waFNsZHZDb3JjNjBPdlIKeWtrWFU3cGhPZVFnUHBH
|
||||
VjcrNmY5a01nUndUQ0pGdy9TK25GZDI3ekR5c1Bwb01mbEZTVVdTTE44QXhZZkxsZThxUVdQdzVS
|
||||
Y2ppdwoxV3JIeHBveFp0T3RFUms5YzZvRzFlUlNGclQ5ZEJMY0JoYWFnWEJPNkxOOHk4WE1IZzdn
|
||||
dGQ3ZVozZUtJR3dHdVZPSTNPTmFML0dzCkdBNWljUnhYWDZaYVhUZUl4dXE4ZEV1Y2oxNVN0cExI
|
||||
TjE4L0JRPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJfMTk4NjAyY2MtYWI0
|
||||
Yi00YTM0LTg2MDMtNTNkYzQzNWRiZWY1Ij48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0
|
||||
ZT5NSUlGT3pDQ0JDT2dBd0lCQWdJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9n
|
||||
eEtDZk5oWmN3RFFZSktvWklodmNOCkFRRUxCUUF3ZkRFTE1Ba0dBMVVFQmhNQ1ZWTXhQREE2QmdO
|
||||
VkJBb1RNMGx1ZEdWeWJtVjBJRU52Y25CdmNtRjBhVzl1SUdadmNpQkIKYzNOcFoyNWxaQ0JPWVcx
|
||||
bGN5QmhibVFnVG5WdFltVnljekV2TUMwR0ExVUVBeE1tU1VOQlRrNGdWSEpoWkdWdFlYSnJJRU5z
|
||||
WldGeQphVzVuYUc5MWMyVWdVR2xzYjNRZ1EwRXdIaGNOTVRnd01qSTRNREF3TURBd1doY05Nak13
|
||||
TXpBeE1qTTFPVFU1V2pDQmp6RUxNQWtHCkExVUVCaE1DUWtVeElEQWVCZ05WQkFnVEYwSnlkWE56
|
||||
Wld4ekxVTmhjR2wwWVd3Z1VtVm5hVzl1TVJFd0R3WURWUVFIRXdoQ2NuVnoKYzJWc2N6RVJNQThH
|
||||
QTFVRUNoTUlSR1ZzYjJsMGRHVXhPREEyQmdOVkJBTVRMMGxEUVU1T0lGUk5RMGdnUVhWMGFHOXlh
|
||||
WHBsWkNCVQpjbUZrWlcxaGNtc2dVR2xzYjNRZ1ZtRnNhV1JoZEc5eU1JSUJJakFOQmdrcWhraUc5
|
||||
dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnhscDNLcFlIWDNXeUFzRmhTazNMd1dmbkdseG5V
|
||||
REZxRlpBM1VvdU1Zai9YaWdiTWtOZUVYSWpsa1JPS1Q0T1BHZlJ4L0xBeVJsUVEKakNNdjRxaGJr
|
||||
Y1gxcDdhcjYzZmxxNFNaTlZjbDE1bDdoMHVUNThGelNmbmx6MHU1cmtIZkpJbUQ0MyttYVAvOGd2
|
||||
MzZGUjI3alc4Ugo5d1k0aGsrV3M0SUIwaUZTZDhTWHYxS3I4dy9KbU1RU0RraXVHK1JmSWl1YndR
|
||||
L2Z5N0VrajVRV2hQWncrbU14TktuSFVMeTN4WXoyCkx3VmZmdGp3VXVlYWN2cU5SQ2tNWGxDbE9B
|
||||
RHFmVDhvU1pvZURYZWhIdmxQc0xDZW1HQm9US3Vyc2tJUzY5RjB5UEVINWd6ZTBIK2YKOEZST3NJ
|
||||
b0tTc1ZRMzRCNFMvam9FNjducHNKUFRkS3NOUEpUeVFJREFRQUJvNElCa3pDQ0FZOHdEQVlEVlIw
|
||||
VEFRSC9CQUl3QURBZApCZ05WSFE0RUZnUVVvRnBZNzZwNXlvTkRSR3RRcHpWdVI4MVVXUTB3Z2NZ
|
||||
R0ExVWRJd1NCdmpDQnU0QVV3NjArcHRZUkFFV0FYRHBYClNvcHQzREVObm5HaGdZQ2tmakI4TVFz
|
||||
d0NRWURWUVFHRXdKVlV6RThNRG9HQTFVRUNoTXpTVzUwWlhKdVpYUWdRMjl5Y0c5eVlYUnAKYjI0
|
||||
Z1ptOXlJRUZ6YzJsbmJtVmtJRTVoYldWeklHRnVaQ0JPZFcxaVpYSnpNUzh3TFFZRFZRUURFeVpK
|
||||
UTBGT1RpQlVjbUZrWlcxaApjbXNnUTJ4bFlYSnBibWRvYjNWelpTQlFhV3h2ZENCRFFZSWdMckFi
|
||||
ZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOCmhYa3dEZ1lEVlIwUEFRSC9CQVFE
|
||||
QWdlQU1EUUdBMVVkSHdRdE1Dc3dLYUFub0NXR0kyaDBkSEE2THk5amNtd3VhV05oYm00dWIzSm4K
|
||||
TDNSdFkyaGZjR2xzYjNRdVkzSnNNRkVHQTFVZElBUktNRWd3RUFZT0t3WUJCQUdDeVJzQkJZTTdE
|
||||
QW93TkFZSUt3WUJCUVVIQWdFdwpLREFtQmdnckJnRUZCUWNDQVJZYWFIUjBjSE02THk5allTNXBZ
|
||||
MkZ1Ymk1dmNtY3ZjR2xzYjNRd0RRWUpLb1pJaHZjTkFRRUxCUUFECmdnRUJBQXVqWjJJY1IyRFZy
|
||||
dGFSckE1OWVOWUNsNHhjc0pNdThEUUNIdjI4ZlRmaS9CaVpZNElyN0Y5a0Z5OTZEN09aOG9MWTV6
|
||||
amYKNGRIeEZ3SFBxSDhEaDZKV3N6WHVIVzFaYTNYbWwwUGFIeENXUlMwWG9sOFdzSEhwTnlnak1C
|
||||
WWZKMG9kVk04ODVUWjFFbDlTaXVFSApueW5GQmdTbWlGYzk5dVFkL1lEUlp1R3YvQTBIeXY3eVI5
|
||||
dGtMRWREM0ExdU5KQlc0UCtISkdwZEtrWUwxUTVyVTcrb0hWUHRNS0tJCjNpRmtVRXNiTzQ1QVZk
|
||||
N3ZQL2ovN0p0QVpQYjZrb09WNWxaaTJIMVJMY2NHd3pkZXpuaEpnZDBOOW9iYjB2bkU0MS9VU1dh
|
||||
ZmRXUloKVkdrd1B1cVRobDdzQ3R6ckpIOFhZMHhjdW0rY2ZMeDJFQUl3VW5PY2FiND08L2RzOlg1
|
||||
MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2RzOlNpZ25hdHVyZT48
|
||||
L3NtZDpzaWduZWRNYXJrPg==
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: الاختبار & لتقييم
|
||||
smdID: 000000771526320375015-65535
|
||||
U-labels: xn------nzeaagpf7azb2ppajr3fa, xn-----btdaafne4a7azpoaiq8ea, xn----ymcaaeld1a4a6onahp3ea, xn--mgbaadjcy1a8mmago8da
|
||||
notBefore: 2018-05-14T17:52:55.015Z
|
||||
notAfter: 2022-08-18T14:27:18.209Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il85NWNl
|
||||
ZjgzNC0wZTkxLTQ1ODQtOGNiYy1iNmFiMDU1ZmFlOWYiPjxzbWQ6aWQ+MDAwMDAwNzcxNTI2MzIw
|
||||
Mzc1MDE1LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo1NS4wMTVaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDoyNzoxOC4yMDlaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTQ0MTUwMzA2NjE5NTE1MDMwNjYxOTUtMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT7Yp9mE2KfYrtiq2KjYp9ixICZhbXA7INmE2KrZgtmK2YrZhTwvbWFyazpt
|
||||
YXJrTmFtZT48bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpuYW1lPtmF2YfZ
|
||||
htiv2LMg2KfZhNmF2LnZhNmI2YXYp9iq2YrYqTwvbWFyazpuYW1lPjxtYXJrOmFkZHI+PG1hcms6
|
||||
c3RyZWV0Ptis2LnZgdixINin2KjZhiDYs9mK2YbYp9ihIDc1PC9tYXJrOnN0cmVldD48bWFyazpj
|
||||
aXR5PtmF2YPZhtin2LM8L21hcms6Y2l0eT48bWFyazpwYz4yOTAwPC9tYXJrOnBjPjxtYXJrOmNj
|
||||
Pk1BPC9tYXJrOmNjPjwvbWFyazphZGRyPjwvbWFyazpob2xkZXI+PG1hcms6Y29udGFjdCB0eXBl
|
||||
PSJhZ2VudCI+PG1hcms6bmFtZT7ZhdmH2YbYr9izINin2YTZhdi52YTZiNmF2KfYqtmK2Kk8L21h
|
||||
cms6bmFtZT48bWFyazpvcmc+2YjZg9in2YTYqTwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpz
|
||||
dHJlZXQ+2LTYp9ix2Lkg2KzYudmB2LEg2KfYqNmGINiz2YrZhtin2KEgNzU8L21hcms6c3RyZWV0
|
||||
PjxtYXJrOmNpdHk+2YXZg9mG2KfYszwvbWFyazpjaXR5PjxtYXJrOnBjPjI5MDA8L21hcms6cGM+
|
||||
PG1hcms6Y2M+TUE8L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1hcms6dm9pY2U+KzIxMi41MjI1Mzkw
|
||||
NDA8L21hcms6dm9pY2U+PG1hcms6ZmF4PisyMTIuNTIyNTM5MDQxPC9tYXJrOmZheD48bWFyazpl
|
||||
bWFpbD5pbmZvQGFnZW5jeS1tYXJvY2NvLmNvbTwvbWFyazplbWFpbD48L21hcms6Y29udGFjdD48
|
||||
bWFyazpqdXJpc2RpY3Rpb24+VVM8L21hcms6anVyaXNkaWN0aW9uPjxtYXJrOmNsYXNzPjE1PC9t
|
||||
YXJrOmNsYXNzPjxtYXJrOmxhYmVsPnhuLS0tLS0tbnplYWFncGY3YXpiMnBwYWpyM2ZhPC9tYXJr
|
||||
OmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tLS1idGRhYWZuZTRhN2F6cG9haXE4ZWE8L21hcms6bGFi
|
||||
ZWw+PG1hcms6bGFiZWw+eG4tLS0teW1jYWFlbGQxYTRhNm9uYWhwM2VhPC9tYXJrOmxhYmVsPjxt
|
||||
YXJrOmxhYmVsPnhuLS1tZ2JhYWRqY3kxYThtbWFnbzhkYTwvbWFyazpsYWJlbD48bWFyazpnb29k
|
||||
c0FuZFNlcnZpY2VzPti62YrYqtin2LE8L21hcms6Z29vZHNBbmRTZXJ2aWNlcz48bWFyazpyZWdO
|
||||
dW0+MTIzNDwvbWFyazpyZWdOdW0+PG1hcms6cmVnRGF0ZT4yMDEzLTAxLTAxVDAwOjAwOjAwLjAw
|
||||
MFo8L21hcms6cmVnRGF0ZT48L21hcms6dHJhZGVtYXJrPjwvbWFyazptYXJrPjxkczpTaWduYXR1
|
||||
cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIElkPSJfOGU0
|
||||
ZGUzYTMtNjAyZC00ZWM2LThiOWYtODIxN2UzY2I4ZDY3Ij48ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fu
|
||||
b25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAv
|
||||
eG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3
|
||||
LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2Etc2hhMjU2Ii8+PGRzOlJlZmVyZW5jZSBV
|
||||
Ukk9IiNfOTVjZWY4MzQtMGU5MS00NTg0LThjYmMtYjZhYjA1NWZhZTlmIj48ZHM6VHJhbnNmb3Jt
|
||||
cz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxk
|
||||
c2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDov
|
||||
L3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpE
|
||||
aWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNz
|
||||
aGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+RFFpMjZGVVFsRW1WYU41TkFPN2VFUVIwVGhZa2d2Tit2
|
||||
YzdKN0ZqV0FtUT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjxkczpSZWZlcmVuY2Ug
|
||||
VVJJPSIjX2ZkZTI3NjYxLTI5ZWMtNDAxMS1hODlkLThjODc0M2ViZWE3MiI+PGRzOlRyYW5zZm9y
|
||||
bXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1s
|
||||
LWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0i
|
||||
aHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVl
|
||||
PjVxSjR0Q2o5Slg0ZXQ5ZERpdEliNUVreUQrVlhCRFJ3bi9mQ3VtK1JjZEU9PC9kczpEaWdlc3RW
|
||||
YWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlIElk
|
||||
PSJfNTBmY2QzMDYtZGFkZi00M2M0LWI3MzMtNjFkNTMyZGI3NTZkIj5JeWpBZFgzMW5YOGN2bkov
|
||||
dFFZRURFZ04rWGF1SWJPemlqTWV4R1ZPTEhIblpqaTgwb0Q0Mjg3VHNwWUt0b2ZVczM3ZURuenc1
|
||||
ZVZ2CmdqazUvcnlleis3Wi8rVVYwVEpGeFhGc3ZDS3p1dHZyQkF3YzJvR3Z3Ni9XcjVtNW1SWkh6
|
||||
eit2eTJ3SWhaYytIRmx5a1NNdm84a0IKaXVJUFUreHRXZ0FvSFRrNUtMRktYZDhPT3duOFdMbElh
|
||||
WDlpMlVqYzdZemY0VEh5dlRJcGthSjZVS2U5Z2pIZ3VaN0NHME9TeFVqYgp5WTErZTBhMWFNZllU
|
||||
cWFFVUVEb2ErbjVuMVorQkVRajlzR2ZkUWYwS0FraE1vQmVVVUZGazVWNDFPZTJlRngwN1EybXYv
|
||||
ZG5HRzQyCmV5SzQ0czBhQWNtdUtMUEtDSlFkUHpsMlFBZUlMaVFCYTFQcVBnPT08L2RzOlNpZ25h
|
||||
dHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJfZmRlMjc2NjEtMjllYy00MDExLWE4OWQtOGM4NzQz
|
||||
ZWJlYTcyIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlGT3pDQ0JDT2dBd0lC
|
||||
QWdJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk5oWmN3RFFZSktvWklo
|
||||
dmNOCkFRRUxCUUF3ZkRFTE1Ba0dBMVVFQmhNQ1ZWTXhQREE2QmdOVkJBb1RNMGx1ZEdWeWJtVjBJ
|
||||
RU52Y25CdmNtRjBhVzl1SUdadmNpQkIKYzNOcFoyNWxaQ0JPWVcxbGN5QmhibVFnVG5WdFltVnlj
|
||||
ekV2TUMwR0ExVUVBeE1tU1VOQlRrNGdWSEpoWkdWdFlYSnJJRU5zWldGeQphVzVuYUc5MWMyVWdV
|
||||
R2xzYjNRZ1EwRXdIaGNOTVRnd01qSTRNREF3TURBd1doY05Nak13TXpBeE1qTTFPVFU1V2pDQmp6
|
||||
RUxNQWtHCkExVUVCaE1DUWtVeElEQWVCZ05WQkFnVEYwSnlkWE56Wld4ekxVTmhjR2wwWVd3Z1Vt
|
||||
Vm5hVzl1TVJFd0R3WURWUVFIRXdoQ2NuVnoKYzJWc2N6RVJNQThHQTFVRUNoTUlSR1ZzYjJsMGRH
|
||||
VXhPREEyQmdOVkJBTVRMMGxEUVU1T0lGUk5RMGdnUVhWMGFHOXlhWHBsWkNCVQpjbUZrWlcxaGNt
|
||||
c2dVR2xzYjNRZ1ZtRnNhV1JoZEc5eU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJ
|
||||
QkNnS0NBUUVBCnhscDNLcFlIWDNXeUFzRmhTazNMd1dmbkdseG5VREZxRlpBM1VvdU1Zai9YaWdi
|
||||
TWtOZUVYSWpsa1JPS1Q0T1BHZlJ4L0xBeVJsUVEKakNNdjRxaGJrY1gxcDdhcjYzZmxxNFNaTlZj
|
||||
bDE1bDdoMHVUNThGelNmbmx6MHU1cmtIZkpJbUQ0MyttYVAvOGd2MzZGUjI3alc4Ugo5d1k0aGsr
|
||||
V3M0SUIwaUZTZDhTWHYxS3I4dy9KbU1RU0RraXVHK1JmSWl1YndRL2Z5N0VrajVRV2hQWncrbU14
|
||||
TktuSFVMeTN4WXoyCkx3VmZmdGp3VXVlYWN2cU5SQ2tNWGxDbE9BRHFmVDhvU1pvZURYZWhIdmxQ
|
||||
c0xDZW1HQm9US3Vyc2tJUzY5RjB5UEVINWd6ZTBIK2YKOEZST3NJb0tTc1ZRMzRCNFMvam9FNjdu
|
||||
cHNKUFRkS3NOUEpUeVFJREFRQUJvNElCa3pDQ0FZOHdEQVlEVlIwVEFRSC9CQUl3QURBZApCZ05W
|
||||
SFE0RUZnUVVvRnBZNzZwNXlvTkRSR3RRcHpWdVI4MVVXUTB3Z2NZR0ExVWRJd1NCdmpDQnU0QVV3
|
||||
NjArcHRZUkFFV0FYRHBYClNvcHQzREVObm5HaGdZQ2tmakI4TVFzd0NRWURWUVFHRXdKVlV6RThN
|
||||
RG9HQTFVRUNoTXpTVzUwWlhKdVpYUWdRMjl5Y0c5eVlYUnAKYjI0Z1ptOXlJRUZ6YzJsbmJtVmtJ
|
||||
RTVoYldWeklHRnVaQ0JPZFcxaVpYSnpNUzh3TFFZRFZRUURFeVpKUTBGT1RpQlVjbUZrWlcxaApj
|
||||
bXNnUTJ4bFlYSnBibWRvYjNWelpTQlFhV3h2ZENCRFFZSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNu
|
||||
M3A3WEptMFQwMkZvZ3hLQ2ZOCmhYa3dEZ1lEVlIwUEFRSC9CQVFEQWdlQU1EUUdBMVVkSHdRdE1D
|
||||
c3dLYUFub0NXR0kyaDBkSEE2THk5amNtd3VhV05oYm00dWIzSm4KTDNSdFkyaGZjR2xzYjNRdVkz
|
||||
SnNNRkVHQTFVZElBUktNRWd3RUFZT0t3WUJCQUdDeVJzQkJZTTdEQW93TkFZSUt3WUJCUVVIQWdF
|
||||
dwpLREFtQmdnckJnRUZCUWNDQVJZYWFIUjBjSE02THk5allTNXBZMkZ1Ymk1dmNtY3ZjR2xzYjNR
|
||||
d0RRWUpLb1pJaHZjTkFRRUxCUUFECmdnRUJBQXVqWjJJY1IyRFZydGFSckE1OWVOWUNsNHhjc0pN
|
||||
dThEUUNIdjI4ZlRmaS9CaVpZNElyN0Y5a0Z5OTZEN09aOG9MWTV6amYKNGRIeEZ3SFBxSDhEaDZK
|
||||
V3N6WHVIVzFaYTNYbWwwUGFIeENXUlMwWG9sOFdzSEhwTnlnak1CWWZKMG9kVk04ODVUWjFFbDlT
|
||||
aXVFSApueW5GQmdTbWlGYzk5dVFkL1lEUlp1R3YvQTBIeXY3eVI5dGtMRWREM0ExdU5KQlc0UCtI
|
||||
SkdwZEtrWUwxUTVyVTcrb0hWUHRNS0tJCjNpRmtVRXNiTzQ1QVZkN3ZQL2ovN0p0QVpQYjZrb09W
|
||||
NWxaaTJIMVJMY2NHd3pkZXpuaEpnZDBOOW9iYjB2bkU0MS9VU1dhZmRXUloKVkdrd1B1cVRobDdz
|
||||
Q3R6ckpIOFhZMHhjdW0rY2ZMeDJFQUl3VW5PY2FiND08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2Rz
|
||||
Olg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2RzOlNpZ25hdHVyZT48L3NtZDpzaWduZWRNYXJrPg==
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,98 +0,0 @@
|
||||
Marks: 审判&错误
|
||||
smdID: 000000801526320380861-65535
|
||||
U-labels: xn----ke8al50aln4ceuj, xn--and-ui2eu74b9t4egon, xn--et-pg5cw37ax04dfrl, xn--fcr14u8t4bdxh
|
||||
notBefore: 2018-05-14T17:53:00.861Z
|
||||
notAfter: 2022-08-18T14:36:50.931Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8wMDE5
|
||||
NmU0Ni1iYjE3LTQxNzgtYWU5MS1kMTNlZmM5MDU5YzEiPjxzbWQ6aWQ+MDAwMDAwODAxNTI2MzIw
|
||||
MzgwODYxLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzowMC44NjFaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDozNjo1MC45MzFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTQ2MTUwMzA2Njc5NTE1MDMwNjY3OTUtMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT7lrqHliKQmYW1wO+mUmeivrzwvbWFyazptYXJrTmFtZT48bWFyazpob2xk
|
||||
ZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpvcmc+5bel56iL5aSEPC9tYXJrOm9yZz48bWFy
|
||||
azphZGRyPjxtYXJrOnN0cmVldD7pppnmuK/kuJzot6825Y+377yMNeWPt+alvO+8jDjlj7flrqQ8
|
||||
L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+6Z2S5bKb5biCPC9tYXJrOmNpdHk+PG1hcms6cGM+MzUw
|
||||
MDwvbWFyazpwYz48bWFyazpjYz5DTjwvbWFyazpjYz48L21hcms6YWRkcj48L21hcms6aG9sZGVy
|
||||
PjxtYXJrOmNvbnRhY3QgdHlwZT0iYWdlbnQiPjxtYXJrOm5hbWU+5p2O5bCP5pa5PC9tYXJrOm5h
|
||||
bWU+PG1hcms6b3JnPuW3peeoi+WkhDwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+
|
||||
6aaZ5riv5Lic6LevNuWPt++8jDXlj7fmpbzvvIw45Y+35a6kPC9tYXJrOnN0cmVldD48bWFyazpj
|
||||
aXR5PumdkuWym+W4gjwvbWFyazpjaXR5PjxtYXJrOnBjPjM1MDA8L21hcms6cGM+PG1hcms6Y2M+
|
||||
Q048L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1hcms6dm9pY2U+Kzg2LjEwODQ2NTcxNzM8L21hcms6
|
||||
dm9pY2U+PG1hcms6ZmF4Pis4Ni4xMDg0NjU3MTc1PC9tYXJrOmZheD48bWFyazplbWFpbD5pbmZv
|
||||
QGNoaW5lc2UtYWdlbmN5LmNvbTwvbWFyazplbWFpbD48L21hcms6Y29udGFjdD48bWFyazpqdXJp
|
||||
c2RpY3Rpb24+VVM8L21hcms6anVyaXNkaWN0aW9uPjxtYXJrOmNsYXNzPjE1PC9tYXJrOmNsYXNz
|
||||
PjxtYXJrOmxhYmVsPnhuLS0tLWtlOGFsNTBhbG40Y2V1ajwvbWFyazpsYWJlbD48bWFyazpsYWJl
|
||||
bD54bi0tYW5kLXVpMmV1NzRiOXQ0ZWdvbjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXQt
|
||||
cGc1Y3czN2F4MDRkZnJsPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1mY3IxNHU4dDRiZHho
|
||||
PC9tYXJrOmxhYmVsPjxtYXJrOmdvb2RzQW5kU2VydmljZXM+5ZCJ5LuWPC9tYXJrOmdvb2RzQW5k
|
||||
U2VydmljZXM+PG1hcms6cmVnTnVtPjEyMzQ8L21hcms6cmVnTnVtPjxtYXJrOnJlZ0RhdGU+MjAx
|
||||
My0wMS0wMVQwMDowMDowMC4wMDBaPC9tYXJrOnJlZ0RhdGU+PC9tYXJrOnRyYWRlbWFyaz48L21h
|
||||
cms6bWFyaz48ZHM6U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5
|
||||
L3htbGRzaWcjIiBJZD0iX2I2ZmZkNDE3LWNkODktNGM5ZS1iMDVkLTY2MjQ0ZDNhZmVjNiI+PGRz
|
||||
OlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8v
|
||||
d3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFs
|
||||
Z29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1
|
||||
NiIvPjxkczpSZWZlcmVuY2UgVVJJPSIjXzAwMTk2ZTQ2LWJiMTctNDE3OC1hZTkxLWQxM2VmYzkw
|
||||
NTljMSI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cu
|
||||
dzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PGRzOlRyYW5zZm9y
|
||||
bSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwv
|
||||
ZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5v
|
||||
cmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPlJNakxrK09ScVlyRmZl
|
||||
UGg1TWNxRklNc2pUYWJGbGZudWhJNWwxRjdyWlU9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVy
|
||||
ZW5jZT48ZHM6UmVmZXJlbmNlIFVSST0iI19mOWY3OGUwOS05MzkyLTRlZTItYTExZi0zOTUzM2Iz
|
||||
NDg1M2YiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3
|
||||
LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2Vz
|
||||
dE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1
|
||||
NiIvPjxkczpEaWdlc3RWYWx1ZT4zVzFBZjY4U0F3dlRjUEVjN21RZnV1VUZKaVN3eWlkWTlUZXBv
|
||||
ZXc3U3JzPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PC9kczpTaWduZWRJbmZvPjxk
|
||||
czpTaWduYXR1cmVWYWx1ZSBJZD0iXzMxZjlmNTEzLWQwYjktNDcwNC04NGE1LTNiYjBmOTE3MzY1
|
||||
MCI+Rm9iTGpncVA0TllOUXFGeVRReHkvMGV1N05nRk5NYXgzYjRCaG5oL1Q0bkFjdWtCZ2NCK0xx
|
||||
d3NranVGZUR3NDNybjY2bm9sdFBtTwphOGdDQWNNdUdjM1drcjVYdDl2N1J4dEViOFdrN3hVRXZh
|
||||
WnM2R0tpNDBZQlRodElNbHhKQyswRGlaRHEzLy9SZjFzSGxDT1k3S2htCjBXeXhMOFFFbmh1RUpJ
|
||||
T09mRDBFbTZzUU9yMG90N0pQVGZ1MDc3bjFuY3FYbEZqSU9JOGZLRVd1d0ZPV0JYL1BTRDNDSENl
|
||||
MCtIeTIKbHI3Q0xyWGVGbWVybmt3OEFDZDZKU3h6WjBqc2ZyVWsrOXY2MmNqQjdSY2FJTjhnTk44
|
||||
ZUdvSCtzR0s2M1BGWHJBQU54YXZxem9tWgp5NXhtVkwzVHUyT1gvUlc5b0xrZVdKUzhEQnlLNGIy
|
||||
WnArTXE5QT09PC9kczpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5mbyBJZD0iX2Y5Zjc4ZTA5LTkz
|
||||
OTItNGVlMi1hMTFmLTM5NTMzYjM0ODUzZiI+PGRzOlg1MDlEYXRhPjxkczpYNTA5Q2VydGlmaWNh
|
||||
dGU+TUlJRk96Q0NCQ09nQXdJQkFnSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZv
|
||||
Z3hLQ2ZOaFpjd0RRWUpLb1pJaHZjTgpBUUVMQlFBd2ZERUxNQWtHQTFVRUJoTUNWVk14UERBNkJn
|
||||
TlZCQW9UTTBsdWRHVnlibVYwSUVOdmNuQnZjbUYwYVc5dUlHWnZjaUJCCmMzTnBaMjVsWkNCT1lX
|
||||
MWxjeUJoYm1RZ1RuVnRZbVZ5Y3pFdk1DMEdBMVVFQXhNbVNVTkJUazRnVkhKaFpHVnRZWEpySUVO
|
||||
c1pXRnkKYVc1bmFHOTFjMlVnVUdsc2IzUWdRMEV3SGhjTk1UZ3dNakk0TURBd01EQXdXaGNOTWpN
|
||||
d016QXhNak0xT1RVNVdqQ0JqekVMTUFrRwpBMVVFQmhNQ1FrVXhJREFlQmdOVkJBZ1RGMEp5ZFhO
|
||||
elpXeHpMVU5oY0dsMFlXd2dVbVZuYVc5dU1SRXdEd1lEVlFRSEV3aENjblZ6CmMyVnNjekVSTUE4
|
||||
R0ExVUVDaE1JUkdWc2IybDBkR1V4T0RBMkJnTlZCQU1UTDBsRFFVNU9JRlJOUTBnZ1FYVjBhRzl5
|
||||
YVhwbFpDQlUKY21Ga1pXMWhjbXNnVUdsc2IzUWdWbUZzYVdSaGRHOXlNSUlCSWpBTkJna3Foa2lH
|
||||
OXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQp4bHAzS3BZSFgzV3lBc0ZoU2szTHdXZm5HbHhu
|
||||
VURGcUZaQTNVb3VNWWovWGlnYk1rTmVFWElqbGtST0tUNE9QR2ZSeC9MQXlSbFFRCmpDTXY0cWhi
|
||||
a2NYMXA3YXI2M2ZscTRTWk5WY2wxNWw3aDB1VDU4RnpTZm5sejB1NXJrSGZKSW1ENDMrbWFQLzhn
|
||||
djM2RlIyN2pXOFIKOXdZNGhrK1dzNElCMGlGU2Q4U1h2MUtyOHcvSm1NUVNEa2l1RytSZklpdWJ3
|
||||
US9meTdFa2o1UVdoUFp3K21NeE5LbkhVTHkzeFl6MgpMd1ZmZnRqd1V1ZWFjdnFOUkNrTVhsQ2xP
|
||||
QURxZlQ4b1Nab2VEWGVoSHZsUHNMQ2VtR0JvVEt1cnNrSVM2OUYweVBFSDVnemUwSCtmCjhGUk9z
|
||||
SW9LU3NWUTM0QjRTL2pvRTY3bnBzSlBUZEtzTlBKVHlRSURBUUFCbzRJQmt6Q0NBWTh3REFZRFZS
|
||||
MFRBUUgvQkFJd0FEQWQKQmdOVkhRNEVGZ1FVb0ZwWTc2cDV5b05EUkd0UXB6VnVSODFVV1Ewd2dj
|
||||
WUdBMVVkSXdTQnZqQ0J1NEFVdzYwK3B0WVJBRVdBWERwWApTb3B0M0RFTm5uR2hnWUNrZmpCOE1R
|
||||
c3dDUVlEVlFRR0V3SlZVekU4TURvR0ExVUVDaE16U1c1MFpYSnVaWFFnUTI5eWNHOXlZWFJwCmIy
|
||||
NGdabTl5SUVGemMybG5ibVZrSUU1aGJXVnpJR0Z1WkNCT2RXMWlaWEp6TVM4d0xRWURWUVFERXla
|
||||
SlEwRk9UaUJVY21Ga1pXMWgKY21zZ1EyeGxZWEpwYm1kb2IzVnpaU0JRYVd4dmRDQkRRWUlnTHJB
|
||||
YmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTgpoWGt3RGdZRFZSMFBBUUgvQkFR
|
||||
REFnZUFNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1YVdOaGJtNHViM0pu
|
||||
CkwzUnRZMmhmY0dsc2IzUXVZM0pzTUZFR0ExVWRJQVJLTUVnd0VBWU9Ld1lCQkFHQ3lSc0JCWU03
|
||||
REFvd05BWUlLd1lCQlFVSEFnRXcKS0RBbUJnZ3JCZ0VGQlFjQ0FSWWFhSFIwY0hNNkx5OWpZUzVw
|
||||
WTJGdWJpNXZjbWN2Y0dsc2IzUXdEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUF1aloySWNSMkRW
|
||||
cnRhUnJBNTllTllDbDR4Y3NKTXU4RFFDSHYyOGZUZmkvQmlaWTRJcjdGOWtGeTk2RDdPWjhvTFk1
|
||||
empmCjRkSHhGd0hQcUg4RGg2Sldzelh1SFcxWmEzWG1sMFBhSHhDV1JTMFhvbDhXc0hIcE55Z2pN
|
||||
QllmSjBvZFZNODg1VFoxRWw5U2l1RUgKbnluRkJnU21pRmM5OXVRZC9ZRFJadUd2L0EwSHl2N3lS
|
||||
OXRrTEVkRDNBMXVOSkJXNFArSEpHcGRLa1lMMVE1clU3K29IVlB0TUtLSQozaUZrVUVzYk80NUFW
|
||||
ZDd2UC9qLzdKdEFaUGI2a29PVjVsWmkySDFSTGNjR3d6ZGV6bmhKZ2QwTjlvYmIwdm5FNDEvVVNX
|
||||
YWZkV1JaClZHa3dQdXFUaGw3c0N0enJKSDhYWTB4Y3VtK2NmTHgyRUFJd1VuT2NhYjQ9PC9kczpY
|
||||
NTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+
|
||||
PC9zbWQ6c2lnbmVkTWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,102 +0,0 @@
|
||||
Marks: Test & Validate
|
||||
smdID: 000000871526320392536-65535
|
||||
U-labels: test---validate, test--validate, test-and-validate, test-andvalidate, test-validate, testand-validate, testandvalidate, testet-validate, testetvalidate, testvalidate
|
||||
notBefore: 2018-05-14T17:53:12.536Z
|
||||
notAfter: 2022-08-18T14:57:36.681Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8wOTJk
|
||||
YzQ4Yi02ZDZhLTRiNzQtYTRhZS1mOThmZDQ0NmQ1OGEiPjxzbWQ6aWQ+MDAwMDAwODcxNTI2MzIw
|
||||
MzkyNTM2LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzoxMi41MzZaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDo1NzozNi42ODFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTM3MTUwMzA2ODA0OTE1MDMwNjgwNDktMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPjxtYXJrOmhv
|
||||
bGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+VG9ueSBIb2xsYW5kPC9tYXJrOm5h
|
||||
bWU+PG1hcms6b3JnPkFnIGNvcnBvcmF0aW9uPC9tYXJrOm9yZz48bWFyazphZGRyPjxtYXJrOnN0
|
||||
cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+QXJjYWRpYTwv
|
||||
bWFyazpjaXR5PjxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPjxtYXJrOmNjPlVTPC9tYXJrOmNjPjwv
|
||||
bWFyazphZGRyPjwvbWFyazpob2xkZXI+PG1hcms6Y29udGFjdCB0eXBlPSJhZ2VudCI+PG1hcms6
|
||||
bmFtZT5Ub255IEhvbGxhbmQ8L21hcms6bmFtZT48bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21h
|
||||
cms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3RyZWV0PkJyaWdodCBBdmVudWUgMTMwNSA8L21hcms6
|
||||
c3RyZWV0PjxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PjxtYXJrOnNwPkNBPC9tYXJrOnNw
|
||||
PjxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPjxtYXJrOmNjPlVTPC9tYXJrOmNjPjwvbWFyazphZGRy
|
||||
PjxtYXJrOnZvaWNlPisxLjIwMjU1NjIzMDI8L21hcms6dm9pY2U+PG1hcms6ZmF4PisxLjIwMjU1
|
||||
NjIzMDE8L21hcms6ZmF4PjxtYXJrOmVtYWlsPmluZm9AYWdjb3Jwb3JhdGlvbi5jb208L21hcms6
|
||||
ZW1haWw+PC9tYXJrOmNvbnRhY3Q+PG1hcms6anVyaXNkaWN0aW9uPlVTPC9tYXJrOmp1cmlzZGlj
|
||||
dGlvbj48bWFyazpjbGFzcz4xNTwvbWFyazpjbGFzcz48bWFyazpsYWJlbD50ZXN0LS0tdmFsaWRh
|
||||
dGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdC0tdmFsaWRhdGU8L21hcms6bGFiZWw+PG1h
|
||||
cms6bGFiZWw+dGVzdC1hbmQtdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdC1h
|
||||
bmR2YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxh
|
||||
YmVsPjxtYXJrOmxhYmVsPnRlc3RhbmQtdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+
|
||||
dGVzdGFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnRlc3RldC12YWxpZGF0ZTwv
|
||||
bWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0ZXR2YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazps
|
||||
YWJlbD50ZXN0dmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5ndWl0
|
||||
YXI8L21hcms6Z29vZHNBbmRTZXJ2aWNlcz48bWFyazpyZWdOdW0+MTIzNDwvbWFyazpyZWdOdW0+
|
||||
PG1hcms6cmVnRGF0ZT4yMDEzLTAxLTAxVDAwOjAwOjAwLjAwMFo8L21hcms6cmVnRGF0ZT48L21h
|
||||
cms6dHJhZGVtYXJrPjwvbWFyazptYXJrPjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93
|
||||
d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIElkPSJfMzI5OGQ0OGItMzMyMS00OWU1LThiMDct
|
||||
YTE4Y2RlODYxNmU0Ij48ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBB
|
||||
bGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpT
|
||||
aWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRz
|
||||
aWctbW9yZSNyc2Etc2hhMjU2Ii8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfMDkyZGM0OGItNmQ2YS00
|
||||
Yjc0LWE0YWUtZjk4ZmQ0NDZkNThhIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29y
|
||||
aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1
|
||||
cmUiLz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94
|
||||
bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGht
|
||||
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFs
|
||||
dWU+dU5TZ2VTclIvbXpHVmdUdmVjRHZCVFdiZDVqTWdKbENEODNrandIemJ4Zz08L2RzOkRpZ2Vz
|
||||
dFZhbHVlPjwvZHM6UmVmZXJlbmNlPjxkczpSZWZlcmVuY2UgVVJJPSIjX2U0YTNhNjEzLTAzYTEt
|
||||
NGZiMi05NWIwLTU2ODVlZDAzYjI4NyI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdv
|
||||
cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJh
|
||||
bnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAw
|
||||
MS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPkZVbjdMcmVhWFVUQzQ3dkVueXQw
|
||||
aXZZRXhVZUdJblBVMU5FUWY4NXNyUk09PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48
|
||||
L2RzOlNpZ25lZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlIElkPSJfMjdjODQxOWUtOTk3Yy00NmQz
|
||||
LWIxNTEtOTUwODQ1ZjgwOWE3Ij5pSmpxWnFaczdXcE91UzZVNVU0bS8zRzB4ZG9Ya3ZORk93UmNq
|
||||
QjI3UFlFNEQ3cVd4d3JDeUZYUTdtNXhkcTAxR1NpeHRpYjlKOXIwClpzZEROaXZyR0c2b05JTGNs
|
||||
a0J1UzRlR3pDMWo3cEZ0alYvRjFNclNiRlI3ZUN3eDhXd2p0N3lBdGlEYXQ0L3VSQkEwQlEyeEpV
|
||||
QSsKQ3IxRml4ckdHSkZNREsxRzBRSU5FU0grK3lNUFZKM0x1ckFTSEJjY0syeVlQTWN6ME5yenJF
|
||||
b0RHd0R0QVk5YXpmQTZndlRDZHZCVwpxOXpxR2NSaTIxOXAvb3c0aW5CcmNsQ05qMGdrUDRwMk5t
|
||||
UTVmM29WSEI2MFVBQ2FFaDV1aUROZ2Q0QkszdDN0N0JQUHN2bStyb0N0CjNIR2V0dnFzK3RQdlE2
|
||||
Mm1RRWFZVGtCSTZCS0M0TEVYYjRwdzRRPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZv
|
||||
IElkPSJfZTRhM2E2MTMtMDNhMS00ZmIyLTk1YjAtNTY4NWVkMDNiMjg3Ij48ZHM6WDUwOURhdGE+
|
||||
PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlGT3pDQ0JDT2dBd0lCQWdJZ0xyQWJldm9hZTUyeTNmNkMy
|
||||
dEIwU24zcDdYSm0wVDAyRm9neEtDZk5oWmN3RFFZSktvWklodmNOCkFRRUxCUUF3ZkRFTE1Ba0dB
|
||||
MVVFQmhNQ1ZWTXhQREE2QmdOVkJBb1RNMGx1ZEdWeWJtVjBJRU52Y25CdmNtRjBhVzl1SUdadmNp
|
||||
QkIKYzNOcFoyNWxaQ0JPWVcxbGN5QmhibVFnVG5WdFltVnljekV2TUMwR0ExVUVBeE1tU1VOQlRr
|
||||
NGdWSEpoWkdWdFlYSnJJRU5zWldGeQphVzVuYUc5MWMyVWdVR2xzYjNRZ1EwRXdIaGNOTVRnd01q
|
||||
STRNREF3TURBd1doY05Nak13TXpBeE1qTTFPVFU1V2pDQmp6RUxNQWtHCkExVUVCaE1DUWtVeElE
|
||||
QWVCZ05WQkFnVEYwSnlkWE56Wld4ekxVTmhjR2wwWVd3Z1VtVm5hVzl1TVJFd0R3WURWUVFIRXdo
|
||||
Q2NuVnoKYzJWc2N6RVJNQThHQTFVRUNoTUlSR1ZzYjJsMGRHVXhPREEyQmdOVkJBTVRMMGxEUVU1
|
||||
T0lGUk5RMGdnUVhWMGFHOXlhWHBsWkNCVQpjbUZrWlcxaGNtc2dVR2xzYjNRZ1ZtRnNhV1JoZEc5
|
||||
eU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnhscDNLcFlIWDNX
|
||||
eUFzRmhTazNMd1dmbkdseG5VREZxRlpBM1VvdU1Zai9YaWdiTWtOZUVYSWpsa1JPS1Q0T1BHZlJ4
|
||||
L0xBeVJsUVEKakNNdjRxaGJrY1gxcDdhcjYzZmxxNFNaTlZjbDE1bDdoMHVUNThGelNmbmx6MHU1
|
||||
cmtIZkpJbUQ0MyttYVAvOGd2MzZGUjI3alc4Ugo5d1k0aGsrV3M0SUIwaUZTZDhTWHYxS3I4dy9K
|
||||
bU1RU0RraXVHK1JmSWl1YndRL2Z5N0VrajVRV2hQWncrbU14TktuSFVMeTN4WXoyCkx3VmZmdGp3
|
||||
VXVlYWN2cU5SQ2tNWGxDbE9BRHFmVDhvU1pvZURYZWhIdmxQc0xDZW1HQm9US3Vyc2tJUzY5RjB5
|
||||
UEVINWd6ZTBIK2YKOEZST3NJb0tTc1ZRMzRCNFMvam9FNjducHNKUFRkS3NOUEpUeVFJREFRQUJv
|
||||
NElCa3pDQ0FZOHdEQVlEVlIwVEFRSC9CQUl3QURBZApCZ05WSFE0RUZnUVVvRnBZNzZwNXlvTkRS
|
||||
R3RRcHpWdVI4MVVXUTB3Z2NZR0ExVWRJd1NCdmpDQnU0QVV3NjArcHRZUkFFV0FYRHBYClNvcHQz
|
||||
REVObm5HaGdZQ2tmakI4TVFzd0NRWURWUVFHRXdKVlV6RThNRG9HQTFVRUNoTXpTVzUwWlhKdVpY
|
||||
UWdRMjl5Y0c5eVlYUnAKYjI0Z1ptOXlJRUZ6YzJsbmJtVmtJRTVoYldWeklHRnVaQ0JPZFcxaVpY
|
||||
SnpNUzh3TFFZRFZRUURFeVpKUTBGT1RpQlVjbUZrWlcxaApjbXNnUTJ4bFlYSnBibWRvYjNWelpT
|
||||
QlFhV3h2ZENCRFFZSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOCmhY
|
||||
a3dEZ1lEVlIwUEFRSC9CQVFEQWdlQU1EUUdBMVVkSHdRdE1Dc3dLYUFub0NXR0kyaDBkSEE2THk5
|
||||
amNtd3VhV05oYm00dWIzSm4KTDNSdFkyaGZjR2xzYjNRdVkzSnNNRkVHQTFVZElBUktNRWd3RUFZ
|
||||
T0t3WUJCQUdDeVJzQkJZTTdEQW93TkFZSUt3WUJCUVVIQWdFdwpLREFtQmdnckJnRUZCUWNDQVJZ
|
||||
YWFIUjBjSE02THk5allTNXBZMkZ1Ymk1dmNtY3ZjR2xzYjNRd0RRWUpLb1pJaHZjTkFRRUxCUUFE
|
||||
CmdnRUJBQXVqWjJJY1IyRFZydGFSckE1OWVOWUNsNHhjc0pNdThEUUNIdjI4ZlRmaS9CaVpZNEly
|
||||
N0Y5a0Z5OTZEN09aOG9MWTV6amYKNGRIeEZ3SFBxSDhEaDZKV3N6WHVIVzFaYTNYbWwwUGFIeENX
|
||||
UlMwWG9sOFdzSEhwTnlnak1CWWZKMG9kVk04ODVUWjFFbDlTaXVFSApueW5GQmdTbWlGYzk5dVFk
|
||||
L1lEUlp1R3YvQTBIeXY3eVI5dGtMRWREM0ExdU5KQlc0UCtISkdwZEtrWUwxUTVyVTcrb0hWUHRN
|
||||
S0tJCjNpRmtVRXNiTzQ1QVZkN3ZQL2ovN0p0QVpQYjZrb09WNWxaaTJIMVJMY2NHd3pkZXpuaEpn
|
||||
ZDBOOW9iYjB2bkU0MS9VU1dhZmRXUloKVkdrd1B1cVRobDdzQ3R6ckpIOFhZMHhjdW0rY2ZMeDJF
|
||||
QUl3VW5PY2FiND08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5m
|
||||
bz48L2RzOlNpZ25hdHVyZT48L3NtZDpzaWduZWRNYXJrPg==
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,103 +0,0 @@
|
||||
Marks: Essai & évaluation
|
||||
smdID: 000000831526320386700-65535
|
||||
U-labels: xn--essai---valuation-itb, xn--essai--valuation-hqb, xn--essai-and-valuation-kzb, xn--essai-andvaluation-jwb, xn--essai-valuation-gnb, xn--essaiand-valuation-jwb, xn--essaiandvaluation-itb, xn--essaiet-valuation-itb, xn--essaietvaluation-hqb, xn--essaivaluation-fkb
|
||||
notBefore: 2018-05-14T17:53:06.700Z
|
||||
notAfter: 2022-08-18T14:46:53.013Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8wNDc1
|
||||
MzkxZi03MzU1LTQ2ZTctODAxOC0yMDdkOWY4OGIzNjYiPjxzbWQ6aWQ+MDAwMDAwODMxNTI2MzIw
|
||||
Mzg2NzAwLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzowNi43MDBaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDo0Njo1My4wMTNaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTM5MTUwMzA2NzM4MjE1MDMwNjczODItMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT5Fc3NhaSAmYW1wOyDDqXZhbHVhdGlvbjwvbWFyazptYXJrTmFtZT48bWFy
|
||||
azpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpvcmc+QWdlbmNlIGVuIEZyYW5jZTwv
|
||||
bWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+MTAgQXZlbnVlIFJvdXNzZWF1eDwvbWFy
|
||||
azpzdHJlZXQ+PG1hcms6Y2l0eT5WZXJzYWlsbGVzPC9tYXJrOmNpdHk+PG1hcms6cGM+MzMwODE8
|
||||
L21hcms6cGM+PG1hcms6Y2M+RlI8L21hcms6Y2M+PC9tYXJrOmFkZHI+PC9tYXJrOmhvbGRlcj48
|
||||
bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij48bWFyazpuYW1lPkZyYW5jIExlYnJ1bjwvbWFyazpu
|
||||
YW1lPjxtYXJrOm9yZz5BZ2VuY2UgZW4gRnJhbmNlPC9tYXJrOm9yZz48bWFyazphZGRyPjxtYXJr
|
||||
OnN0cmVldD5BdmVudWUgUm91c3NlYXV4IDEwIDwvbWFyazpzdHJlZXQ+PG1hcms6Y2l0eT5WZXJz
|
||||
YWlsbGVzPC9tYXJrOmNpdHk+PG1hcms6cGM+MzMwODE8L21hcms6cGM+PG1hcms6Y2M+RlI8L21h
|
||||
cms6Y2M+PC9tYXJrOmFkZHI+PG1hcms6dm9pY2U+KzMzLjEyNTc4MTI1MDwvbWFyazp2b2ljZT48
|
||||
bWFyazpmYXg+KzMzLjEyNTc4MTI1MTwvbWFyazpmYXg+PG1hcms6ZW1haWw+aW5mb0BhZ2VuY2Ut
|
||||
ZW4tZnJhbmNlLmZyPC9tYXJrOmVtYWlsPjwvbWFyazpjb250YWN0PjxtYXJrOmp1cmlzZGljdGlv
|
||||
bj5VUzwvbWFyazpqdXJpc2RpY3Rpb24+PG1hcms6Y2xhc3M+MTU8L21hcms6Y2xhc3M+PG1hcms6
|
||||
bGFiZWw+eG4tLWVzc2FpLS0tdmFsdWF0aW9uLWl0YjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54
|
||||
bi0tZXNzYWktLXZhbHVhdGlvbi1ocWI8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWVzc2Fp
|
||||
LWFuZC12YWx1YXRpb24ta3piPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1lc3NhaS1hbmR2
|
||||
YWx1YXRpb24tandiPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1lc3NhaS12YWx1YXRpb24t
|
||||
Z25iPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1lc3NhaWFuZC12YWx1YXRpb24tandiPC9t
|
||||
YXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1lc3NhaWFuZHZhbHVhdGlvbi1pdGI8L21hcms6bGFi
|
||||
ZWw+PG1hcms6bGFiZWw+eG4tLWVzc2FpZXQtdmFsdWF0aW9uLWl0YjwvbWFyazpsYWJlbD48bWFy
|
||||
azpsYWJlbD54bi0tZXNzYWlldHZhbHVhdGlvbi1ocWI8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+
|
||||
eG4tLWVzc2FpdmFsdWF0aW9uLWZrYjwvbWFyazpsYWJlbD48bWFyazpnb29kc0FuZFNlcnZpY2Vz
|
||||
Pmd1aXRhcjwvbWFyazpnb29kc0FuZFNlcnZpY2VzPjxtYXJrOnJlZ051bT4xMjM0PC9tYXJrOnJl
|
||||
Z051bT48bWFyazpyZWdEYXRlPjIwMTMtMDEtMDFUMDA6MDA6MDAuMDAwWjwvbWFyazpyZWdEYXRl
|
||||
PjwvbWFyazp0cmFkZW1hcms+PC9tYXJrOm1hcms+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0
|
||||
cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9kODJkMWNjZC01NDE1LTQ1ZGMt
|
||||
YmFlZS02YjQ0MTQyZjRiZjEiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0
|
||||
aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+
|
||||
PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQv
|
||||
eG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18wNDc1MzkxZi03
|
||||
MzU1LTQ2ZTctODAxOC0yMDdkOWY4OGIzNjYiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0g
|
||||
QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNp
|
||||
Z25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
|
||||
LzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdv
|
||||
cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdl
|
||||
c3RWYWx1ZT5CTWRyLzg3cVpocHQ1SXVvVXdTUFpiQ3JsMEQvYzMvS2RLM1ZTV2RFUmo0PTwvZHM6
|
||||
RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNDhiZjM0ZTgt
|
||||
NWM3MC00ZDRlLTg2MDItNWEwNTAwYWYyNWQ3Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3Jt
|
||||
IEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9k
|
||||
czpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y
|
||||
Zy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+cEZ0RTkxTEwyZ2h0SDZ0
|
||||
cmtyR2ppWE1pZlpyQ1pNMUhXRXFZSmtTQ1ZwND08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJl
|
||||
bmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il8yNGVjYWRhNS1kYjZj
|
||||
LTQ4MmEtOWM3Mi0wYWJiYjUyNmU1OGIiPlNTbjRXeWVZNDZyVmdMZGQzNUNJQlAva2taMFFMWFpO
|
||||
ajd0ZUhhUU1OVC9ROU5sRWNicmo0Y2djWFZNNXlsT1M5SXQvdjdvQ09jckMKK2cxbTdINjB1Vkg3
|
||||
U0w0bWl5dWVyYW5vZy9GU2ZTd1J1akc4Z0MyWEhqQUNEU2dxbnFYN3YzempWRkI4VFZrYjhLWHJh
|
||||
a29jM0tRUAo2ZjlDNmcxcll3QlBiVnZNV1FUd3BwSHJBbmRnRFlUb3pUOWowRmVzcWljbm14UzhG
|
||||
ZU1DRHl4UkYydmxCQ05RaUk0QmZ6NVpYcHhFClhRdnEvdjBkVmk0cnl0UWY3K29UMnBHSlJNUVV3
|
||||
ZHpXVmJOZnZvU2ZMUDBlRHFkUHcxczI1MVpHamhyRm9LOWRZRDBOMmo2RG5mSUgKUG9LbjNXSCtl
|
||||
bVBvaGt3UlFGUmZlT2JUbnhwOGwyNmRsMWNVOVE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktl
|
||||
eUluZm8gSWQ9Il80OGJmMzRlOC01YzcwLTRkNGUtODYwMi01YTA1MDBhZjI1ZDciPjxkczpYNTA5
|
||||
RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZPekNDQkNPZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5
|
||||
M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhaY3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVM
|
||||
TUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJ
|
||||
R1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1T
|
||||
VU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05N
|
||||
VGd3TWpJNE1EQXdNREF3V2hjTk1qTXdNekF4TWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNR
|
||||
a1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZR
|
||||
UUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEww
|
||||
bERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FX
|
||||
UmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0tw
|
||||
WUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRP
|
||||
UEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2Zu
|
||||
bHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFL
|
||||
cjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdW
|
||||
ZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lT
|
||||
NjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlE
|
||||
QVFBQm80SUJrekNDQVk4d0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1
|
||||
eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgK
|
||||
U29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBa
|
||||
WEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9k
|
||||
VzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9i
|
||||
M1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtD
|
||||
Zk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRI
|
||||
QTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01GRUdBMVVkSUFSS01F
|
||||
Z3dFQVlPS3dZQkJBR0N5UnNCQllNN0RBb3dOQVlJS3dZQkJRVUhBZ0V3CktEQW1CZ2dyQmdFRkJR
|
||||
Y0NBUllhYUhSMGNITTZMeTlqWVM1cFkyRnViaTV2Y21jdmNHbHNiM1F3RFFZSktvWklodmNOQVFF
|
||||
TEJRQUQKZ2dFQkFBdWpaMkljUjJEVnJ0YVJyQTU5ZU5ZQ2w0eGNzSk11OERRQ0h2MjhmVGZpL0Jp
|
||||
Wlk0SXI3RjlrRnk5NkQ3T1o4b0xZNXpqZgo0ZEh4RndIUHFIOERoNkpXc3pYdUhXMVphM1htbDBQ
|
||||
YUh4Q1dSUzBYb2w4V3NISHBOeWdqTUJZZkowb2RWTTg4NVRaMUVsOVNpdUVICm55bkZCZ1NtaUZj
|
||||
OTl1UWQvWURSWnVHdi9BMEh5djd5Ujl0a0xFZEQzQTF1TkpCVzRQK0hKR3BkS2tZTDFRNXJVNytv
|
||||
SFZQdE1LS0kKM2lGa1VFc2JPNDVBVmQ3dlAvai83SnRBWlBiNmtvT1Y1bFppMkgxUkxjY0d3emRl
|
||||
em5oSmdkME45b2JiMHZuRTQxL1VTV2FmZFdSWgpWR2t3UHVxVGhsN3NDdHpySkg4WFkweGN1bStj
|
||||
Zkx4MkVBSXdVbk9jYWI0PTwvZHM6WDUwOUNlcnRpZmljYXRlPjwvZHM6WDUwOURhdGE+PC9kczpL
|
||||
ZXlJbmZvPjwvZHM6U2lnbmF0dXJlPjwvc21kOnNpZ25lZE1hcms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,104 +0,0 @@
|
||||
Marks: суда & ошибки
|
||||
smdID: 000000741526320369172-65535
|
||||
U-labels: xn------5cdin6abr1b1ay5e, xn-----6kcgl1abp7azaw9d, xn---and--3vemr6bbv9b5a2a7f, xn---and-43dkp1bbt5b3a0a1f, xn----7sbejwbn3axu3d, xn--and--43dkp1bbt5b3a0a1f, xn--and-5cdin6abr1b1ay5e, xn--et--5cdin6abr1b1ay5e, xn--et-6kcgl1abp7azaw9d, xn--80achrblzvs7c
|
||||
notBefore: 2018-05-14T17:52:49.172Z
|
||||
notAfter: 2022-08-18T14:16:55.554Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zZmM4
|
||||
NjdlYy0yODlhLTQwMzEtYmQ2Mi1jNDdhZWUzOGNkZGMiPjxzbWQ6aWQ+MDAwMDAwNzQxNTI2MzIw
|
||||
MzY5MTcyLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo0OS4xNzJaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDoxNjo1NS41NTRaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTQxMTUwMzA2NTU1MDE1MDMwNjU1NTAtMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT7RgdGD0LTQsCAmYW1wOyDQvtGI0LjQsdC60Lg8L21hcms6bWFya05hbWU+
|
||||
PG1hcms6aG9sZGVyIGVudGl0bGVtZW50PSJvd25lciI+PG1hcms6b3JnPtCQ0LPQtdC90YLRgdGC
|
||||
0LLQvjwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpzdHJlZXQ+0J/RgNC+0YHQv9C10LrRgiDQ
|
||||
ktC10YDQvdCw0LTRgdC60L7Qs9C+IDE1PC9tYXJrOnN0cmVldD48bWFyazpjaXR5PtCc0L7RgdC6
|
||||
0LLQsDwvbWFyazpjaXR5PjxtYXJrOnBjPjExNzQ4NTwvbWFyazpwYz48bWFyazpjYz5SVTwvbWFy
|
||||
azpjYz48L21hcms6YWRkcj48L21hcms6aG9sZGVyPjxtYXJrOmNvbnRhY3QgdHlwZT0iYWdlbnQi
|
||||
PjxtYXJrOm5hbWU+0J3QsNGC0LDQu9GM0Y8g0JDQvdGC0L7QvdC+0LLQsDwvbWFyazpuYW1lPjxt
|
||||
YXJrOm9yZz7QkNCz0LXQvdGC0YHRgtCy0L48L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3Ry
|
||||
ZWV0PtCf0YDQvtGB0L/QtdC60YIg0JLQtdGA0L3QsNC00YHQutC+0LPQviAxNTwvbWFyazpzdHJl
|
||||
ZXQ+PG1hcms6Y2l0eT7QnNC+0YHQutCy0LA8L21hcms6Y2l0eT48bWFyazpwYz4xMTc0ODU8L21h
|
||||
cms6cGM+PG1hcms6Y2M+UlU8L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1hcms6dm9pY2U+KzcuOTE4
|
||||
ODIyMTY3NDwvbWFyazp2b2ljZT48bWFyazpmYXg+KzcuOTE4ODIyMTY3MzwvbWFyazpmYXg+PG1h
|
||||
cms6ZW1haWw+aW5mb0BhZ2VuY3kucnU8L21hcms6ZW1haWw+PC9tYXJrOmNvbnRhY3Q+PG1hcms6
|
||||
anVyaXNkaWN0aW9uPlVTPC9tYXJrOmp1cmlzZGljdGlvbj48bWFyazpjbGFzcz4xNTwvbWFyazpj
|
||||
bGFzcz48bWFyazpsYWJlbD54bi0tLS0tLTVjZGluNmFicjFiMWF5NWU8L21hcms6bGFiZWw+PG1h
|
||||
cms6bGFiZWw+eG4tLS0tLTZrY2dsMWFicDdhemF3OWQ8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+
|
||||
eG4tLS1hbmQtLTN2ZW1yNmJidjliNWEyYTdmPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0t
|
||||
YW5kLTQzZGtwMWJidDViM2EwYTFmPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tLTdzYmVq
|
||||
d2JuM2F4dTNkPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1hbmQtLTQzZGtwMWJidDViM2Ew
|
||||
YTFmPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1hbmQtNWNkaW42YWJyMWIxYXk1ZTwvbWFy
|
||||
azpsYWJlbD48bWFyazpsYWJlbD54bi0tZXQtLTVjZGluNmFicjFiMWF5NWU8L21hcms6bGFiZWw+
|
||||
PG1hcms6bGFiZWw+eG4tLWV0LTZrY2dsMWFicDdhemF3OWQ8L21hcms6bGFiZWw+PG1hcms6bGFi
|
||||
ZWw+eG4tLTgwYWNocmJsenZzN2M8L21hcms6bGFiZWw+PG1hcms6Z29vZHNBbmRTZXJ2aWNlcz7Q
|
||||
s9C40YLQsNGA0LAgPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+PG1hcms6cmVnTnVtPjEyMzQ8L21h
|
||||
cms6cmVnTnVtPjxtYXJrOnJlZ0RhdGU+MjAxMy0wMS0wMVQwMDowMDowMC4wMDBaPC9tYXJrOnJl
|
||||
Z0RhdGU+PC9tYXJrOnRyYWRlbWFyaz48L21hcms6bWFyaz48ZHM6U2lnbmF0dXJlIHhtbG5zOmRz
|
||||
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJZD0iXzJkYzkzZmYwLWE2OTEt
|
||||
NGI5Ni05ZWQxLWQ0MjEyMjAxN2UxMyI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRp
|
||||
b25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0
|
||||
biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAw
|
||||
MS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxkczpSZWZlcmVuY2UgVVJJPSIjXzNmYzg2
|
||||
N2VjLTI4OWEtNDAzMS1iZDYyLWM0N2FlZTM4Y2RkYyI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5z
|
||||
Zm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9w
|
||||
ZWQtc2lnbmF0dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3Jn
|
||||
LzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9k
|
||||
IEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRz
|
||||
OkRpZ2VzdFZhbHVlPnFRMThOYktsOW0zS2NSS291aFRMWTErSXd3WFNkeEhTZlRMMk80cjFnSU09
|
||||
PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVmZXJlbmNlIFVSST0iI18xNGQ1
|
||||
MzQ4MS04MTUzLTRhNDItOGI3OS0xNWYwMzI1N2FjYjYiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFu
|
||||
c2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMi
|
||||
Lz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cu
|
||||
dzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT5IcUplczRqN0dw
|
||||
ODUrdmNvMVo2Q1A0VjA1dFU3c01FbDBQR0gwSDlJYjR3PTwvZHM6RGlnZXN0VmFsdWU+PC9kczpS
|
||||
ZWZlcmVuY2U+PC9kczpTaWduZWRJbmZvPjxkczpTaWduYXR1cmVWYWx1ZSBJZD0iXzVjNDllNzcw
|
||||
LTJjYjMtNDg0OC05OWY1LWNhOTBlMDdhYmJhZSI+bmg1eGhwQ2tHdElmbnhVUGdUMmV6Uk5ZVWQ5
|
||||
bjRGT2E2N1pSaW81QzdkbzkybjU0OTAzdTUwbThIV0FDTmdUdGVWTitvQ2lMNGNXdgpnQ1prNDJ0
|
||||
bHdiY3dhb0I3cjJmK3ZsTzR6eDdFbUc2UDZPYWl3aWRYYjVabUdoOVc4dVplVk54VUtjLytjenNk
|
||||
d0xBUmVQeXpZL2JOCjEzT3ZoSEkrbHM3TitDUkhNdTlwZUdIZXdBQlpIV0RKYXpXZWxPQVZkcVNY
|
||||
L2hEOVVBSGY5QXo2RjdhZEp3RTVUN2JMOGxuRlVGaWMKQ3BlRDMxN0ZGOU1YTWdqU1hXMWpOVDdP
|
||||
aUlLeXUxeXQ1WXFIZUtFU2ZiSklpY01WUVZDa3NVMUw1YWpWYzMyOUNudDM5N09Bb0JHdgpDei9N
|
||||
SzhvV0o2UmluUHB3dThQN05TVzF1eWRVaTBKZE1CL0cyZz09PC9kczpTaWduYXR1cmVWYWx1ZT48
|
||||
ZHM6S2V5SW5mbyBJZD0iXzE0ZDUzNDgxLTgxNTMtNGE0Mi04Yjc5LTE1ZjAzMjU3YWNiNiI+PGRz
|
||||
Olg1MDlEYXRhPjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJRk96Q0NCQ09nQXdJQkFnSWdMckFiZXZv
|
||||
YWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOaFpjd0RRWUpLb1pJaHZjTgpBUUVMQlFB
|
||||
d2ZERUxNQWtHQTFVRUJoTUNWVk14UERBNkJnTlZCQW9UTTBsdWRHVnlibVYwSUVOdmNuQnZjbUYw
|
||||
YVc5dUlHWnZjaUJCCmMzTnBaMjVsWkNCT1lXMWxjeUJoYm1RZ1RuVnRZbVZ5Y3pFdk1DMEdBMVVF
|
||||
QXhNbVNVTkJUazRnVkhKaFpHVnRZWEpySUVOc1pXRnkKYVc1bmFHOTFjMlVnVUdsc2IzUWdRMEV3
|
||||
SGhjTk1UZ3dNakk0TURBd01EQXdXaGNOTWpNd016QXhNak0xT1RVNVdqQ0JqekVMTUFrRwpBMVVF
|
||||
QmhNQ1FrVXhJREFlQmdOVkJBZ1RGMEp5ZFhOelpXeHpMVU5oY0dsMFlXd2dVbVZuYVc5dU1SRXdE
|
||||
d1lEVlFRSEV3aENjblZ6CmMyVnNjekVSTUE4R0ExVUVDaE1JUkdWc2IybDBkR1V4T0RBMkJnTlZC
|
||||
QU1UTDBsRFFVNU9JRlJOUTBnZ1FYVjBhRzl5YVhwbFpDQlUKY21Ga1pXMWhjbXNnVUdsc2IzUWdW
|
||||
bUZzYVdSaGRHOXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQp4
|
||||
bHAzS3BZSFgzV3lBc0ZoU2szTHdXZm5HbHhuVURGcUZaQTNVb3VNWWovWGlnYk1rTmVFWElqbGtS
|
||||
T0tUNE9QR2ZSeC9MQXlSbFFRCmpDTXY0cWhia2NYMXA3YXI2M2ZscTRTWk5WY2wxNWw3aDB1VDU4
|
||||
RnpTZm5sejB1NXJrSGZKSW1ENDMrbWFQLzhndjM2RlIyN2pXOFIKOXdZNGhrK1dzNElCMGlGU2Q4
|
||||
U1h2MUtyOHcvSm1NUVNEa2l1RytSZklpdWJ3US9meTdFa2o1UVdoUFp3K21NeE5LbkhVTHkzeFl6
|
||||
MgpMd1ZmZnRqd1V1ZWFjdnFOUkNrTVhsQ2xPQURxZlQ4b1Nab2VEWGVoSHZsUHNMQ2VtR0JvVEt1
|
||||
cnNrSVM2OUYweVBFSDVnemUwSCtmCjhGUk9zSW9LU3NWUTM0QjRTL2pvRTY3bnBzSlBUZEtzTlBK
|
||||
VHlRSURBUUFCbzRJQmt6Q0NBWTh3REFZRFZSMFRBUUgvQkFJd0FEQWQKQmdOVkhRNEVGZ1FVb0Zw
|
||||
WTc2cDV5b05EUkd0UXB6VnVSODFVV1Ewd2djWUdBMVVkSXdTQnZqQ0J1NEFVdzYwK3B0WVJBRVdB
|
||||
WERwWApTb3B0M0RFTm5uR2hnWUNrZmpCOE1Rc3dDUVlEVlFRR0V3SlZVekU4TURvR0ExVUVDaE16
|
||||
U1c1MFpYSnVaWFFnUTI5eWNHOXlZWFJwCmIyNGdabTl5SUVGemMybG5ibVZrSUU1aGJXVnpJR0Z1
|
||||
WkNCT2RXMWlaWEp6TVM4d0xRWURWUVFERXlaSlEwRk9UaUJVY21Ga1pXMWgKY21zZ1EyeGxZWEpw
|
||||
Ym1kb2IzVnpaU0JRYVd4dmRDQkRRWUlnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJG
|
||||
b2d4S0NmTgpoWGt3RGdZRFZSMFBBUUgvQkFRREFnZUFNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJ
|
||||
MmgwZEhBNkx5OWpjbXd1YVdOaGJtNHViM0puCkwzUnRZMmhmY0dsc2IzUXVZM0pzTUZFR0ExVWRJ
|
||||
QVJLTUVnd0VBWU9Ld1lCQkFHQ3lSc0JCWU03REFvd05BWUlLd1lCQlFVSEFnRXcKS0RBbUJnZ3JC
|
||||
Z0VGQlFjQ0FSWWFhSFIwY0hNNkx5OWpZUzVwWTJGdWJpNXZjbWN2Y0dsc2IzUXdEUVlKS29aSWh2
|
||||
Y05BUUVMQlFBRApnZ0VCQUF1aloySWNSMkRWcnRhUnJBNTllTllDbDR4Y3NKTXU4RFFDSHYyOGZU
|
||||
ZmkvQmlaWTRJcjdGOWtGeTk2RDdPWjhvTFk1empmCjRkSHhGd0hQcUg4RGg2Sldzelh1SFcxWmEz
|
||||
WG1sMFBhSHhDV1JTMFhvbDhXc0hIcE55Z2pNQllmSjBvZFZNODg1VFoxRWw5U2l1RUgKbnluRkJn
|
||||
U21pRmM5OXVRZC9ZRFJadUd2L0EwSHl2N3lSOXRrTEVkRDNBMXVOSkJXNFArSEpHcGRLa1lMMVE1
|
||||
clU3K29IVlB0TUtLSQozaUZrVUVzYk80NUFWZDd2UC9qLzdKdEFaUGI2a29PVjVsWmkySDFSTGNj
|
||||
R3d6ZGV6bmhKZ2QwTjlvYmIwdm5FNDEvVVNXYWZkV1JaClZHa3dQdXFUaGw3c0N0enJKSDhYWTB4
|
||||
Y3VtK2NmTHgyRUFJd1VuT2NhYjQ9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48
|
||||
L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: الاختبار & لتقييم
|
||||
smdID: 000000901526320396418-65535
|
||||
U-labels: xn------nzeaagpf7azb2ppajr3fa, xn-----btdaafne4a7azpoaiq8ea, xn----ymcaaeld1a4a6onahp3ea, xn-----btdaafne4a7azpoaiq4byba, xn----ymcaaeld1a4a6onahp2b7aa, xn--mgbaadjcy1a8mmago8da, xn----ymcaaeld1a4a6onahp1b8aa, xn--mgbaadjcy1a8mmago9a5aa
|
||||
notBefore: 2018-05-14T17:53:16.418Z
|
||||
notAfter: 2022-08-21T08:59:34.305Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il83YWMz
|
||||
NWQ1MS1mZTgyLTQ5ODYtYTgzMC1iZjg1NDI4MzI1YWMiPjxzbWQ6aWQ+MDAwMDAwOTAxNTI2MzIw
|
||||
Mzk2NDE4LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzoxNi40MThaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODo1OTozNC4zMDVaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTQyMTUwMzMwNTI5OTE1MDMzMDUyOTktMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT7Yp9mE2KfYrtiq2KjYp9ixICZhbXA7INmE2KrZgtmK2YrZhTwvbWFyazpt
|
||||
YXJrTmFtZT48bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpuYW1lPtmF2YfZ
|
||||
htiv2LMg2KfZhNmF2LnZhNmI2YXYp9iq2YrYqTwvbWFyazpuYW1lPjxtYXJrOm9yZz7Yp9iu2KrY
|
||||
qNin2LE8L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3RyZWV0Ptis2LnZgdixINin2KjZhiDY
|
||||
s9mK2YbYp9ihIDc1PC9tYXJrOnN0cmVldD48bWFyazpjaXR5PtmF2YPZhtin2LM8L21hcms6Y2l0
|
||||
eT48bWFyazpwYz4yOTAwPC9tYXJrOnBjPjxtYXJrOmNjPk1BPC9tYXJrOmNjPjwvbWFyazphZGRy
|
||||
PjxtYXJrOnZvaWNlPisyMTIuNTIyNTM5MDQwPC9tYXJrOnZvaWNlPjxtYXJrOmZheD4rMjEyLjUy
|
||||
MjUzOTA0MTwvbWFyazpmYXg+PG1hcms6ZW1haWw+aW5mb0BleGFtcGxlLmV4YW1wbGU8L21hcms6
|
||||
ZW1haWw+PC9tYXJrOmhvbGRlcj48bWFyazpqdXJpc2RpY3Rpb24+TUE8L21hcms6anVyaXNkaWN0
|
||||
aW9uPjxtYXJrOmNsYXNzPjE1PC9tYXJrOmNsYXNzPjxtYXJrOmxhYmVsPnhuLS0tLS0tbnplYWFn
|
||||
cGY3YXpiMnBwYWpyM2ZhPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tLS1idGRhYWZuZTRh
|
||||
N2F6cG9haXE4ZWE8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLS0teW1jYWFlbGQxYTRhNm9u
|
||||
YWhwM2VhPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS0tLS1idGRhYWZuZTRhN2F6cG9haXE0
|
||||
YnliYTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tLS15bWNhYWVsZDFhNGE2b25haHAyYjdh
|
||||
YTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tbWdiYWFkamN5MWE4bW1hZ284ZGE8L21hcms6
|
||||
bGFiZWw+PG1hcms6bGFiZWw+eG4tLS0teW1jYWFlbGQxYTRhNm9uYWhwMWI4YWE8L21hcms6bGFi
|
||||
ZWw+PG1hcms6bGFiZWw+eG4tLW1nYmFhZGpjeTFhOG1tYWdvOWE1YWE8L21hcms6bGFiZWw+PG1h
|
||||
cms6Z29vZHNBbmRTZXJ2aWNlcz7YutmK2KrYp9ixPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+PG1h
|
||||
cms6cmVnTnVtPjEyMzQ8L21hcms6cmVnTnVtPjxtYXJrOnJlZ0RhdGU+MjAxMy0wMS0wMVQwMDow
|
||||
MDowMC4wMDBaPC9tYXJrOnJlZ0RhdGU+PC9tYXJrOnRyYWRlbWFyaz48L21hcms6bWFyaz48ZHM6
|
||||
U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJ
|
||||
ZD0iXzA5ODIzYjE3LWU5YjQtNGU2My05ZjdjLTVlMjI0ODExZWJjZCI+PGRzOlNpZ25lZEluZm8+
|
||||
PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y
|
||||
MDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0
|
||||
cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxkczpSZWZl
|
||||
cmVuY2UgVVJJPSIjXzdhYzM1ZDUxLWZlODItNDk4Ni1hODMwLWJmODU0MjgzMjVhYyI+PGRzOlRy
|
||||
YW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
|
||||
MDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09
|
||||
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jt
|
||||
cz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94
|
||||
bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPkJsOTBqOE5QMENpWExpTGZ3bGw1czZwUFo0
|
||||
RkhndnNERGdONmpsU0VZdUk9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVm
|
||||
ZXJlbmNlIFVSST0iI19kYmJkODUzMy1mM2JhLTRlYmItODIwOC00ZTQyNjA3OWZkYTgiPjxkczpU
|
||||
cmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
|
||||
LzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdv
|
||||
cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdl
|
||||
c3RWYWx1ZT5NZGhmNjBmN0l4c0t6ODVLemVvbndtRlg5SGR1ZnBUZDhiYmNpODJhWkhZPTwvZHM6
|
||||
RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PC9kczpTaWduZWRJbmZvPjxkczpTaWduYXR1cmVW
|
||||
YWx1ZSBJZD0iX2I5YmJmYjU0LWVjNWEtNDA2Mi04OGE2LTlmNDg4YjY1ZjJhNyI+cjc5R08xZGFy
|
||||
dDBuZ1lFak8rZkNCTzVKZHU2K0hWdDA3WDMvc2V3VUhHOG5tNmF3NGJESEM0aG0vcEMrSmR2NkpT
|
||||
NkJLN2I1YTF3MQpTbWRzSUxxWmxMdmF4K0ZBTmlCQzRaVXpFZUN2cHFqZ2hFTThJN3g0MWdhUnFj
|
||||
aDh3Y0kyUTdvSEdNbVo3N2crSU1PdHJBa0taZkxOCjV4c0RZbFkwUTVCWEJoNmVES0V5VHFwMmtJ
|
||||
dGc3WVlJZDgvWGNYbldVQTRONDY3RE14b0RyekdJbFI0ZFpmMWMvdzZ3WXhMTFdMak0KZThpYzcr
|
||||
cGpRMmFXVjNpQ25pZ2pnQlIvendQMHNzZEwxUGhoNVptUU5PSE9TZ2tEN2c2U2pzRUlJRkhRblZl
|
||||
ZGVxaHB0cXBtRjVBYgpzdDFwWk1BWS8rRVIwY2NoMGFmSjRBZURVRjdpYVBWODM1cTEwZz09PC9k
|
||||
czpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5mbyBJZD0iX2RiYmQ4NTMzLWYzYmEtNGViYi04MjA4
|
||||
LTRlNDI2MDc5ZmRhOCI+PGRzOlg1MDlEYXRhPjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJRk96Q0NC
|
||||
Q09nQXdJQkFnSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOaFpjd0RR
|
||||
WUpLb1pJaHZjTgpBUUVMQlFBd2ZERUxNQWtHQTFVRUJoTUNWVk14UERBNkJnTlZCQW9UTTBsdWRH
|
||||
VnlibVYwSUVOdmNuQnZjbUYwYVc5dUlHWnZjaUJCCmMzTnBaMjVsWkNCT1lXMWxjeUJoYm1RZ1Ru
|
||||
VnRZbVZ5Y3pFdk1DMEdBMVVFQXhNbVNVTkJUazRnVkhKaFpHVnRZWEpySUVOc1pXRnkKYVc1bmFH
|
||||
OTFjMlVnVUdsc2IzUWdRMEV3SGhjTk1UZ3dNakk0TURBd01EQXdXaGNOTWpNd016QXhNak0xT1RV
|
||||
NVdqQ0JqekVMTUFrRwpBMVVFQmhNQ1FrVXhJREFlQmdOVkJBZ1RGMEp5ZFhOelpXeHpMVU5oY0ds
|
||||
MFlXd2dVbVZuYVc5dU1SRXdEd1lEVlFRSEV3aENjblZ6CmMyVnNjekVSTUE4R0ExVUVDaE1JUkdW
|
||||
c2IybDBkR1V4T0RBMkJnTlZCQU1UTDBsRFFVNU9JRlJOUTBnZ1FYVjBhRzl5YVhwbFpDQlUKY21G
|
||||
a1pXMWhjbXNnVUdsc2IzUWdWbUZzYVdSaGRHOXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9D
|
||||
QVE4QU1JSUJDZ0tDQVFFQQp4bHAzS3BZSFgzV3lBc0ZoU2szTHdXZm5HbHhuVURGcUZaQTNVb3VN
|
||||
WWovWGlnYk1rTmVFWElqbGtST0tUNE9QR2ZSeC9MQXlSbFFRCmpDTXY0cWhia2NYMXA3YXI2M2Zs
|
||||
cTRTWk5WY2wxNWw3aDB1VDU4RnpTZm5sejB1NXJrSGZKSW1ENDMrbWFQLzhndjM2RlIyN2pXOFIK
|
||||
OXdZNGhrK1dzNElCMGlGU2Q4U1h2MUtyOHcvSm1NUVNEa2l1RytSZklpdWJ3US9meTdFa2o1UVdo
|
||||
UFp3K21NeE5LbkhVTHkzeFl6MgpMd1ZmZnRqd1V1ZWFjdnFOUkNrTVhsQ2xPQURxZlQ4b1Nab2VE
|
||||
WGVoSHZsUHNMQ2VtR0JvVEt1cnNrSVM2OUYweVBFSDVnemUwSCtmCjhGUk9zSW9LU3NWUTM0QjRT
|
||||
L2pvRTY3bnBzSlBUZEtzTlBKVHlRSURBUUFCbzRJQmt6Q0NBWTh3REFZRFZSMFRBUUgvQkFJd0FE
|
||||
QWQKQmdOVkhRNEVGZ1FVb0ZwWTc2cDV5b05EUkd0UXB6VnVSODFVV1Ewd2djWUdBMVVkSXdTQnZq
|
||||
Q0J1NEFVdzYwK3B0WVJBRVdBWERwWApTb3B0M0RFTm5uR2hnWUNrZmpCOE1Rc3dDUVlEVlFRR0V3
|
||||
SlZVekU4TURvR0ExVUVDaE16U1c1MFpYSnVaWFFnUTI5eWNHOXlZWFJwCmIyNGdabTl5SUVGemMy
|
||||
bG5ibVZrSUU1aGJXVnpJR0Z1WkNCT2RXMWlaWEp6TVM4d0xRWURWUVFERXlaSlEwRk9UaUJVY21G
|
||||
a1pXMWgKY21zZ1EyeGxZWEpwYm1kb2IzVnpaU0JRYVd4dmRDQkRRWUlnTHJBYmV2b2FlNTJ5M2Y2
|
||||
QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTgpoWGt3RGdZRFZSMFBBUUgvQkFRREFnZUFNRFFHQTFV
|
||||
ZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1YVdOaGJtNHViM0puCkwzUnRZMmhmY0ds
|
||||
c2IzUXVZM0pzTUZFR0ExVWRJQVJLTUVnd0VBWU9Ld1lCQkFHQ3lSc0JCWU03REFvd05BWUlLd1lC
|
||||
QlFVSEFnRXcKS0RBbUJnZ3JCZ0VGQlFjQ0FSWWFhSFIwY0hNNkx5OWpZUzVwWTJGdWJpNXZjbWN2
|
||||
Y0dsc2IzUXdEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUF1aloySWNSMkRWcnRhUnJBNTllTllD
|
||||
bDR4Y3NKTXU4RFFDSHYyOGZUZmkvQmlaWTRJcjdGOWtGeTk2RDdPWjhvTFk1empmCjRkSHhGd0hQ
|
||||
cUg4RGg2Sldzelh1SFcxWmEzWG1sMFBhSHhDV1JTMFhvbDhXc0hIcE55Z2pNQllmSjBvZFZNODg1
|
||||
VFoxRWw5U2l1RUgKbnluRkJnU21pRmM5OXVRZC9ZRFJadUd2L0EwSHl2N3lSOXRrTEVkRDNBMXVO
|
||||
SkJXNFArSEpHcGRLa1lMMVE1clU3K29IVlB0TUtLSQozaUZrVUVzYk80NUFWZDd2UC9qLzdKdEFa
|
||||
UGI2a29PVjVsWmkySDFSTGNjR3d6ZGV6bmhKZ2QwTjlvYmIwdm5FNDEvVVNXYWZkV1JaClZHa3dQ
|
||||
dXFUaGw3c0N0enJKSDhYWTB4Y3VtK2NmTHgyRUFJd1VuT2NhYjQ9PC9kczpYNTA5Q2VydGlmaWNh
|
||||
dGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVk
|
||||
TWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,94 +0,0 @@
|
||||
Marks: 试验&用例
|
||||
smdID: 000000711526320363329-65535
|
||||
U-labels: xn----lb7ao71jn7sf0q, xn--and-xc0em33obp2aosv, xn--et-rt3cn04lhyx1ps, xn--fsqv03gtrpson
|
||||
notBefore: 2018-05-14T17:52:43.329Z
|
||||
notAfter: 2022-08-21T08:12:01.925Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il85YTNh
|
||||
YTQwZi1kODE5LTQ1ODktYjIxZi1jNDkyODI5YzRkMTUiPjxzbWQ6aWQ+MDAwMDAwNzExNTI2MzIw
|
||||
MzYzMzI5LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo0My4zMjlaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjowMS45MjVaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTQ1MTUwMzA2NDc4NDE1MDMwNjQ3ODQtMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT7or5XpqowmYW1wO+eUqOS+izwvbWFyazptYXJrTmFtZT48bWFyazpob2xk
|
||||
ZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpuYW1lPuadjuWwj+aWuTwvbWFyazpuYW1lPjxt
|
||||
YXJrOm9yZz7mtYvor5U8L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3RyZWV0Pummmea4r+S4
|
||||
nOi3rzblj7fvvIw15Y+35qW877yMOOWPt+WupCA8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+6Z2S
|
||||
5bKb5biCPC9tYXJrOmNpdHk+PG1hcms6cGM+MTAwMDwvbWFyazpwYz48bWFyazpjYz5DTjwvbWFy
|
||||
azpjYz48L21hcms6YWRkcj48bWFyazp2b2ljZT4rODYuMTA4NDY1NzE3MzwvbWFyazp2b2ljZT48
|
||||
bWFyazpmYXg+Kzg2LjEwODQ2NTcxNzM8L21hcms6ZmF4PjxtYXJrOmVtYWlsPmluZm9AZXhhbXBs
|
||||
ZS5leGFtcGxlPC9tYXJrOmVtYWlsPjwvbWFyazpob2xkZXI+PG1hcms6anVyaXNkaWN0aW9uPlVT
|
||||
PC9tYXJrOmp1cmlzZGljdGlvbj48bWFyazpjbGFzcz4xNTwvbWFyazpjbGFzcz48bWFyazpsYWJl
|
||||
bD54bi0tLS1sYjdhbzcxam43c2YwcTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tYW5kLXhj
|
||||
MGVtMzNvYnAyYW9zdjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXQtcnQzY24wNGxoeXgx
|
||||
cHM8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWZzcXYwM2d0cnBzb248L21hcms6bGFiZWw+
|
||||
PG1hcms6Z29vZHNBbmRTZXJ2aWNlcz4g5ZCJ5LuWPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+PG1h
|
||||
cms6cmVnTnVtPjEyMzQ8L21hcms6cmVnTnVtPjxtYXJrOnJlZ0RhdGU+MjAxMy0wMS0wMVQwMDow
|
||||
MDowMC4wMDBaPC9tYXJrOnJlZ0RhdGU+PC9tYXJrOnRyYWRlbWFyaz48L21hcms6bWFyaz48ZHM6
|
||||
U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJ
|
||||
ZD0iX2NmOWI3MGJhLTA3ZGMtNDIzNi1iOGE4LWFkNTdmOWRjNzkwYSI+PGRzOlNpZ25lZEluZm8+
|
||||
PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y
|
||||
MDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0
|
||||
cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxkczpSZWZl
|
||||
cmVuY2UgVVJJPSIjXzlhM2FhNDBmLWQ4MTktNDU4OS1iMjFmLWM0OTI4MjljNGQxNSI+PGRzOlRy
|
||||
YW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
|
||||
MDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09
|
||||
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jt
|
||||
cz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94
|
||||
bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPmdYQ3RKOXdLQUNSdkt5L1htUGJBSnFwbFY1
|
||||
MklCN053UFVoUnNqN1dVdk09PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVm
|
||||
ZXJlbmNlIFVSST0iI19hZTYzMzUzNS1mMzYyLTRjYzUtOWE3My00ZTQ3Y2U4NGI1ZjciPjxkczpU
|
||||
cmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
|
||||
LzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdv
|
||||
cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdl
|
||||
c3RWYWx1ZT5xL1AveElVYm1zanhLMzNmTUo4eUdtNUxuenpjZ05ydG8yRHNNM2RqVk9ZPTwvZHM6
|
||||
RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PC9kczpTaWduZWRJbmZvPjxkczpTaWduYXR1cmVW
|
||||
YWx1ZSBJZD0iXzNlODFkNGJlLTc1YzMtNDAwMS04MDAzLWY0ZWNiYzliZWQ1MSI+TVFvNEVXUWRp
|
||||
L3ZOWUViUWVzbDhiY2R5R3J3SWFVaVlyOWtpK3EydkV5UDZ1bllJdzdlRzFKaTNzZTRxL3VkWUhD
|
||||
c2Uyc3c3UTkyZgpwQVNic1A0d0tQUldzRjZkZHRRVDVidlY1VS9sWU5YekZ1Rk9jV3ZPdEdPQ3hj
|
||||
cVArZTBqMUFNR1ZvbVVPckR1VDg1T1dyQkVJM3Q4CjlqQTE3a0lrZkMwcWNFUUVYdG81dXFHa3NC
|
||||
YUl2Y0VheFZCbWN2UlU5ZDJCSlozZnBra1ZXNDlVcTdQaVlhN2xiZktkQWFWOFJtYWYKZnBCQkp2
|
||||
K2dUSVNKZklMTnozdHpYNVZZUlkzTmEwdUVEOFNNVnpJc1FOUzZXbzYwM1RUNXYxdThIUFVxYWtr
|
||||
ZWZVL3VzVnEwVndYSwphdlg0V1hUVERNeVZHUXh2ck5aNnIzQ2RjMDM3UFptTExNSnREdz09PC9k
|
||||
czpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5mbyBJZD0iX2FlNjMzNTM1LWYzNjItNGNjNS05YTcz
|
||||
LTRlNDdjZTg0YjVmNyI+PGRzOlg1MDlEYXRhPjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJRk96Q0NC
|
||||
Q09nQXdJQkFnSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOaFpjd0RR
|
||||
WUpLb1pJaHZjTgpBUUVMQlFBd2ZERUxNQWtHQTFVRUJoTUNWVk14UERBNkJnTlZCQW9UTTBsdWRH
|
||||
VnlibVYwSUVOdmNuQnZjbUYwYVc5dUlHWnZjaUJCCmMzTnBaMjVsWkNCT1lXMWxjeUJoYm1RZ1Ru
|
||||
VnRZbVZ5Y3pFdk1DMEdBMVVFQXhNbVNVTkJUazRnVkhKaFpHVnRZWEpySUVOc1pXRnkKYVc1bmFH
|
||||
OTFjMlVnVUdsc2IzUWdRMEV3SGhjTk1UZ3dNakk0TURBd01EQXdXaGNOTWpNd016QXhNak0xT1RV
|
||||
NVdqQ0JqekVMTUFrRwpBMVVFQmhNQ1FrVXhJREFlQmdOVkJBZ1RGMEp5ZFhOelpXeHpMVU5oY0ds
|
||||
MFlXd2dVbVZuYVc5dU1SRXdEd1lEVlFRSEV3aENjblZ6CmMyVnNjekVSTUE4R0ExVUVDaE1JUkdW
|
||||
c2IybDBkR1V4T0RBMkJnTlZCQU1UTDBsRFFVNU9JRlJOUTBnZ1FYVjBhRzl5YVhwbFpDQlUKY21G
|
||||
a1pXMWhjbXNnVUdsc2IzUWdWbUZzYVdSaGRHOXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9D
|
||||
QVE4QU1JSUJDZ0tDQVFFQQp4bHAzS3BZSFgzV3lBc0ZoU2szTHdXZm5HbHhuVURGcUZaQTNVb3VN
|
||||
WWovWGlnYk1rTmVFWElqbGtST0tUNE9QR2ZSeC9MQXlSbFFRCmpDTXY0cWhia2NYMXA3YXI2M2Zs
|
||||
cTRTWk5WY2wxNWw3aDB1VDU4RnpTZm5sejB1NXJrSGZKSW1ENDMrbWFQLzhndjM2RlIyN2pXOFIK
|
||||
OXdZNGhrK1dzNElCMGlGU2Q4U1h2MUtyOHcvSm1NUVNEa2l1RytSZklpdWJ3US9meTdFa2o1UVdo
|
||||
UFp3K21NeE5LbkhVTHkzeFl6MgpMd1ZmZnRqd1V1ZWFjdnFOUkNrTVhsQ2xPQURxZlQ4b1Nab2VE
|
||||
WGVoSHZsUHNMQ2VtR0JvVEt1cnNrSVM2OUYweVBFSDVnemUwSCtmCjhGUk9zSW9LU3NWUTM0QjRT
|
||||
L2pvRTY3bnBzSlBUZEtzTlBKVHlRSURBUUFCbzRJQmt6Q0NBWTh3REFZRFZSMFRBUUgvQkFJd0FE
|
||||
QWQKQmdOVkhRNEVGZ1FVb0ZwWTc2cDV5b05EUkd0UXB6VnVSODFVV1Ewd2djWUdBMVVkSXdTQnZq
|
||||
Q0J1NEFVdzYwK3B0WVJBRVdBWERwWApTb3B0M0RFTm5uR2hnWUNrZmpCOE1Rc3dDUVlEVlFRR0V3
|
||||
SlZVekU4TURvR0ExVUVDaE16U1c1MFpYSnVaWFFnUTI5eWNHOXlZWFJwCmIyNGdabTl5SUVGemMy
|
||||
bG5ibVZrSUU1aGJXVnpJR0Z1WkNCT2RXMWlaWEp6TVM4d0xRWURWUVFERXlaSlEwRk9UaUJVY21G
|
||||
a1pXMWgKY21zZ1EyeGxZWEpwYm1kb2IzVnpaU0JRYVd4dmRDQkRRWUlnTHJBYmV2b2FlNTJ5M2Y2
|
||||
QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTgpoWGt3RGdZRFZSMFBBUUgvQkFRREFnZUFNRFFHQTFV
|
||||
ZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1YVdOaGJtNHViM0puCkwzUnRZMmhmY0ds
|
||||
c2IzUXVZM0pzTUZFR0ExVWRJQVJLTUVnd0VBWU9Ld1lCQkFHQ3lSc0JCWU03REFvd05BWUlLd1lC
|
||||
QlFVSEFnRXcKS0RBbUJnZ3JCZ0VGQlFjQ0FSWWFhSFIwY0hNNkx5OWpZUzVwWTJGdWJpNXZjbWN2
|
||||
Y0dsc2IzUXdEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUF1aloySWNSMkRWcnRhUnJBNTllTllD
|
||||
bDR4Y3NKTXU4RFFDSHYyOGZUZmkvQmlaWTRJcjdGOWtGeTk2RDdPWjhvTFk1empmCjRkSHhGd0hQ
|
||||
cUg4RGg2Sldzelh1SFcxWmEzWG1sMFBhSHhDV1JTMFhvbDhXc0hIcE55Z2pNQllmSjBvZFZNODg1
|
||||
VFoxRWw5U2l1RUgKbnluRkJnU21pRmM5OXVRZC9ZRFJadUd2L0EwSHl2N3lSOXRrTEVkRDNBMXVO
|
||||
SkJXNFArSEpHcGRLa1lMMVE1clU3K29IVlB0TUtLSQozaUZrVUVzYk80NUFWZDd2UC9qLzdKdEFa
|
||||
UGI2a29PVjVsWmkySDFSTGNjR3d6ZGV6bmhKZ2QwTjlvYmIwdm5FNDEvVVNXYWZkV1JaClZHa3dQ
|
||||
dXFUaGw3c0N0enJKSDhYWTB4Y3VtK2NmTHgyRUFJd1VuT2NhYjQ9PC9kczpYNTA5Q2VydGlmaWNh
|
||||
dGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVk
|
||||
TWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: Test & Validate
|
||||
smdID: 000000541526320345762-65535
|
||||
U-labels: test---validate, test--validate, test-et-validate, test-etvalidate, test-validate, testand-validate, testandvalidate, testet-validate, testetvalidate, testvalidate
|
||||
notBefore: 2018-05-14T17:52:25.762Z
|
||||
notAfter: 2022-08-21T08:12:19.525Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il81MDRi
|
||||
ZDc4NS1lNzViLTRkYTMtYWEzYy0yZmYxNDlkYmJlNWUiPjxzbWQ6aWQ+MDAwMDAwNTQxNTI2MzIw
|
||||
MzQ1NzYyLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MjoyNS43NjJaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjoxOS41MjVaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTM2MTUwMzA1NjkwOTE1MDMwNTY5MDktMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPjxtYXJrOmhv
|
||||
bGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+RnJhbmsgV2hpdGU8L21hcms6bmFt
|
||||
ZT48bWFyazpvcmc+VGVzdCBPcmdhbml6YXRpb248L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6
|
||||
c3RyZWV0Pldlc3QgQXJxdWVzIEF2ZW51ZSAxMDEgPC9tYXJrOnN0cmVldD48bWFyazpjaXR5PlN1
|
||||
bm55dmFsZTwvbWFyazpjaXR5PjxtYXJrOnNwPkNBPC9tYXJrOnNwPjxtYXJrOnBjPjEwMDIzLTMy
|
||||
NDE8L21hcms6cGM+PG1hcms6Y2M+VVM8L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1hcms6dm9pY2U+
|
||||
KzEuMzAxNDU1NjYwMDwvbWFyazp2b2ljZT48bWFyazpmYXg+KzEuMzAxNDU1NjYwMTwvbWFyazpm
|
||||
YXg+PG1hcms6ZW1haWw+aW5mb0BleGFtcGxlLmV4YW1wbGU8L21hcms6ZW1haWw+PC9tYXJrOmhv
|
||||
bGRlcj48bWFyazpqdXJpc2RpY3Rpb24+VVM8L21hcms6anVyaXNkaWN0aW9uPjxtYXJrOmNsYXNz
|
||||
PjE1PC9tYXJrOmNsYXNzPjxtYXJrOmxhYmVsPnRlc3QtLS12YWxpZGF0ZTwvbWFyazpsYWJlbD48
|
||||
bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0LWV0
|
||||
LXZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnRlc3QtZXR2YWxpZGF0ZTwvbWFyazps
|
||||
YWJlbD48bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnRl
|
||||
c3RhbmQtdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdGFuZHZhbGlkYXRlPC9t
|
||||
YXJrOmxhYmVsPjxtYXJrOmxhYmVsPnRlc3RldC12YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazps
|
||||
YWJlbD50ZXN0ZXR2YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0dmFsaWRhdGU8
|
||||
L21hcms6bGFiZWw+PG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5ndWl0YXI8L21hcms6Z29vZHNBbmRT
|
||||
ZXJ2aWNlcz48bWFyazpyZWdOdW0+MTIzNDwvbWFyazpyZWdOdW0+PG1hcms6cmVnRGF0ZT4yMDEz
|
||||
LTAxLTAxVDAwOjAwOjAwLjAwMFo8L21hcms6cmVnRGF0ZT48bWFyazpleERhdGU+MjAxNC0xMS0w
|
||||
NVQwMDowMDowMC4wMDBaPC9tYXJrOmV4RGF0ZT48L21hcms6dHJhZGVtYXJrPjwvbWFyazptYXJr
|
||||
PjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNp
|
||||
ZyMiIElkPSJfOTJjYWZjMmMtOWM3Yy00MTgwLWI4ZDMtZjI0NmU2NDEzZjBiIj48ZHM6U2lnbmVk
|
||||
SW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMu
|
||||
b3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVNZXRob2QgQWxnb3JpdGht
|
||||
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2Etc2hhMjU2Ii8+PGRz
|
||||
OlJlZmVyZW5jZSBVUkk9IiNfNTA0YmQ3ODUtZTc1Yi00ZGEzLWFhM2MtMmZmMTQ5ZGJiZTVlIj48
|
||||
ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJhbnNmb3JtIEFsZ29y
|
||||
aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFu
|
||||
c2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
|
||||
LzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+UmlQcHZCR3B5N3lQZHo5VmVER3BI
|
||||
M3RWSGdsS1NtU0xWREYvL3R1ZlcwRT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjxk
|
||||
czpSZWZlcmVuY2UgVVJJPSIjXzE4NmUxY2Y3LTNmMWMtNDM0Ny05MWJmLTg4NzlmZmFjNmRhZSI+
|
||||
PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3Jn
|
||||
LzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9k
|
||||
IEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRz
|
||||
OkRpZ2VzdFZhbHVlPnBFSTIvZmhmN0YwOThWTUF6Q3d2eURpRENMNmhBU3NUbTNDUWQ0eFc0LzA9
|
||||
PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEluZm8+PGRzOlNpZ25h
|
||||
dHVyZVZhbHVlIElkPSJfMGEyNzlmNWUtZGY4ZS00NGEyLWI0Y2MtMzFlYmUyYjcyYmQ1Ij5DOG5P
|
||||
SFFIR3AwZlpYYVVEWUZxVVBhSS9ESG1rZXJSd0d3R1gybndzREIxazViOGJ4U3lnUFo3cDN6ZWZL
|
||||
Y0NLTG8zdFhtNWVUU3dxClJFNVU1Y0tvVTRUYXRlS3JUUDV1SWtTbENhVXJOTU1ZbnFWcy9pNXNy
|
||||
TlhMbENYdFpQT0hkTlM0VDVlcXdNMXpTWDlZTCsvSkRnRzIKMVVFbTh2Wk5qbmQ2c1ZzMDdnM0hZ
|
||||
aVNZczBlKzZLTjdQbWV3T3NyVHZQbGNyQk1YK2w0MDlZNW5wUmNVRFQ4NUVCQ3l0bDZteG95bwov
|
||||
d0NvYjR2cS9oOVE1Qk9nMFZ2NnNiRCt3d0RqQ0pRZzBBU25nVXRQM2w1L3FOODJEYWxLcXRqUDUw
|
||||
WGduV2tJL1dSTlVQOG50c0NOCmtCZEY2Mnd0K1E2K2hOU3pDLzRxS2pPMFV6ZlBjWStqSkZ0SVpR
|
||||
PT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJfMTg2ZTFjZjctM2YxYy00MzQ3
|
||||
LTkxYmYtODg3OWZmYWM2ZGFlIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlG
|
||||
T3pDQ0JDT2dBd0lCQWdJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk5o
|
||||
WmN3RFFZSktvWklodmNOCkFRRUxCUUF3ZkRFTE1Ba0dBMVVFQmhNQ1ZWTXhQREE2QmdOVkJBb1RN
|
||||
MGx1ZEdWeWJtVjBJRU52Y25CdmNtRjBhVzl1SUdadmNpQkIKYzNOcFoyNWxaQ0JPWVcxbGN5Qmhi
|
||||
bVFnVG5WdFltVnljekV2TUMwR0ExVUVBeE1tU1VOQlRrNGdWSEpoWkdWdFlYSnJJRU5zWldGeQph
|
||||
VzVuYUc5MWMyVWdVR2xzYjNRZ1EwRXdIaGNOTVRnd01qSTRNREF3TURBd1doY05Nak13TXpBeE1q
|
||||
TTFPVFU1V2pDQmp6RUxNQWtHCkExVUVCaE1DUWtVeElEQWVCZ05WQkFnVEYwSnlkWE56Wld4ekxV
|
||||
TmhjR2wwWVd3Z1VtVm5hVzl1TVJFd0R3WURWUVFIRXdoQ2NuVnoKYzJWc2N6RVJNQThHQTFVRUNo
|
||||
TUlSR1ZzYjJsMGRHVXhPREEyQmdOVkJBTVRMMGxEUVU1T0lGUk5RMGdnUVhWMGFHOXlhWHBsWkNC
|
||||
VQpjbUZrWlcxaGNtc2dVR2xzYjNRZ1ZtRnNhV1JoZEc5eU1JSUJJakFOQmdrcWhraUc5dzBCQVFF
|
||||
RkFBT0NBUThBTUlJQkNnS0NBUUVBCnhscDNLcFlIWDNXeUFzRmhTazNMd1dmbkdseG5VREZxRlpB
|
||||
M1VvdU1Zai9YaWdiTWtOZUVYSWpsa1JPS1Q0T1BHZlJ4L0xBeVJsUVEKakNNdjRxaGJrY1gxcDdh
|
||||
cjYzZmxxNFNaTlZjbDE1bDdoMHVUNThGelNmbmx6MHU1cmtIZkpJbUQ0MyttYVAvOGd2MzZGUjI3
|
||||
alc4Ugo5d1k0aGsrV3M0SUIwaUZTZDhTWHYxS3I4dy9KbU1RU0RraXVHK1JmSWl1YndRL2Z5N0Vr
|
||||
ajVRV2hQWncrbU14TktuSFVMeTN4WXoyCkx3VmZmdGp3VXVlYWN2cU5SQ2tNWGxDbE9BRHFmVDhv
|
||||
U1pvZURYZWhIdmxQc0xDZW1HQm9US3Vyc2tJUzY5RjB5UEVINWd6ZTBIK2YKOEZST3NJb0tTc1ZR
|
||||
MzRCNFMvam9FNjducHNKUFRkS3NOUEpUeVFJREFRQUJvNElCa3pDQ0FZOHdEQVlEVlIwVEFRSC9C
|
||||
QUl3QURBZApCZ05WSFE0RUZnUVVvRnBZNzZwNXlvTkRSR3RRcHpWdVI4MVVXUTB3Z2NZR0ExVWRJ
|
||||
d1NCdmpDQnU0QVV3NjArcHRZUkFFV0FYRHBYClNvcHQzREVObm5HaGdZQ2tmakI4TVFzd0NRWURW
|
||||
UVFHRXdKVlV6RThNRG9HQTFVRUNoTXpTVzUwWlhKdVpYUWdRMjl5Y0c5eVlYUnAKYjI0Z1ptOXlJ
|
||||
RUZ6YzJsbmJtVmtJRTVoYldWeklHRnVaQ0JPZFcxaVpYSnpNUzh3TFFZRFZRUURFeVpKUTBGT1Rp
|
||||
QlVjbUZrWlcxaApjbXNnUTJ4bFlYSnBibWRvYjNWelpTQlFhV3h2ZENCRFFZSWdMckFiZXZvYWU1
|
||||
MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOCmhYa3dEZ1lEVlIwUEFRSC9CQVFEQWdlQU1E
|
||||
UUdBMVVkSHdRdE1Dc3dLYUFub0NXR0kyaDBkSEE2THk5amNtd3VhV05oYm00dWIzSm4KTDNSdFky
|
||||
aGZjR2xzYjNRdVkzSnNNRkVHQTFVZElBUktNRWd3RUFZT0t3WUJCQUdDeVJzQkJZTTdEQW93TkFZ
|
||||
SUt3WUJCUVVIQWdFdwpLREFtQmdnckJnRUZCUWNDQVJZYWFIUjBjSE02THk5allTNXBZMkZ1Ymk1
|
||||
dmNtY3ZjR2xzYjNRd0RRWUpLb1pJaHZjTkFRRUxCUUFECmdnRUJBQXVqWjJJY1IyRFZydGFSckE1
|
||||
OWVOWUNsNHhjc0pNdThEUUNIdjI4ZlRmaS9CaVpZNElyN0Y5a0Z5OTZEN09aOG9MWTV6amYKNGRI
|
||||
eEZ3SFBxSDhEaDZKV3N6WHVIVzFaYTNYbWwwUGFIeENXUlMwWG9sOFdzSEhwTnlnak1CWWZKMG9k
|
||||
Vk04ODVUWjFFbDlTaXVFSApueW5GQmdTbWlGYzk5dVFkL1lEUlp1R3YvQTBIeXY3eVI5dGtMRWRE
|
||||
M0ExdU5KQlc0UCtISkdwZEtrWUwxUTVyVTcrb0hWUHRNS0tJCjNpRmtVRXNiTzQ1QVZkN3ZQL2ov
|
||||
N0p0QVpQYjZrb09WNWxaaTJIMVJMY2NHd3pkZXpuaEpnZDBOOW9iYjB2bkU0MS9VU1dhZmRXUloK
|
||||
Vkdrd1B1cVRobDdzQ3R6ckpIOFhZMHhjdW0rY2ZMeDJFQUl3VW5PY2FiND08L2RzOlg1MDlDZXJ0
|
||||
aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2RzOlNpZ25hdHVyZT48L3NtZDpz
|
||||
aWduZWRNYXJrPg==
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: Essai & évaluation
|
||||
smdID: 000000651526320351638-65535
|
||||
U-labels: xn--essai---valuation-itb, xn--essai--valuation-hqb, xn--essai-and-valuation-kzb, xn--essai-andvaluation-jwb, xn--essai-valuation-gnb, xn--essaiand-valuation-jwb, xn--essaiandvaluation-itb, xn--essaiet-valuation-itb, xn--essaietvaluation-hqb, xn--essaivaluation-fkb
|
||||
notBefore: 2018-05-14T17:52:31.638Z
|
||||
notAfter: 2022-08-21T08:12:14.116Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zYWE2
|
||||
ZjExMS1lMjI4LTRiNWItOTc3MC00ZjkzYjE0MTI2MDkiPjxzbWQ6aWQ+MDAwMDAwNjUxNTI2MzIw
|
||||
MzUxNjM4LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MjozMS42MzhaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjoxNC4xMTZaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTM4MTUwMzA2MDc4MjE1MDMwNjA3ODItMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT5Fc3NhaSAmYW1wOyDDqXZhbHVhdGlvbjwvbWFyazptYXJrTmFtZT48bWFy
|
||||
azpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpuYW1lPkplYW4gTGVibGFuYzwvbWFy
|
||||
azpuYW1lPjxtYXJrOm9yZz5PcmFuaXNhdGlvbiBkZSB0ZXN0PC9tYXJrOm9yZz48bWFyazphZGRy
|
||||
PjxtYXJrOnN0cmVldD5SVUUgUk9HTkUgNDAgPC9tYXJrOnN0cmVldD48bWFyazpjaXR5PkFSVE9J
|
||||
UzwvbWFyazpjaXR5PjxtYXJrOnBjPjIxMzAxPC9tYXJrOnBjPjxtYXJrOmNjPkZSPC9tYXJrOmNj
|
||||
PjwvbWFyazphZGRyPjxtYXJrOnZvaWNlPiszMy4yNjQ5OTUwMzI8L21hcms6dm9pY2U+PG1hcms6
|
||||
ZmF4PiszMy4yNjQ5OTUwMzM8L21hcms6ZmF4PjxtYXJrOmVtYWlsPmluZm9AZXhhbXBsZS5leGFt
|
||||
cGxlPC9tYXJrOmVtYWlsPjwvbWFyazpob2xkZXI+PG1hcms6anVyaXNkaWN0aW9uPlVTPC9tYXJr
|
||||
Omp1cmlzZGljdGlvbj48bWFyazpjbGFzcz4xNTwvbWFyazpjbGFzcz48bWFyazpsYWJlbD54bi0t
|
||||
ZXNzYWktLS12YWx1YXRpb24taXRiPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1lc3NhaS0t
|
||||
dmFsdWF0aW9uLWhxYjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXNzYWktYW5kLXZhbHVh
|
||||
dGlvbi1remI8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWVzc2FpLWFuZHZhbHVhdGlvbi1q
|
||||
d2I8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+eG4tLWVzc2FpLXZhbHVhdGlvbi1nbmI8L21hcms6
|
||||
bGFiZWw+PG1hcms6bGFiZWw+eG4tLWVzc2FpYW5kLXZhbHVhdGlvbi1qd2I8L21hcms6bGFiZWw+
|
||||
PG1hcms6bGFiZWw+eG4tLWVzc2FpYW5kdmFsdWF0aW9uLWl0YjwvbWFyazpsYWJlbD48bWFyazps
|
||||
YWJlbD54bi0tZXNzYWlldC12YWx1YXRpb24taXRiPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhu
|
||||
LS1lc3NhaWV0dmFsdWF0aW9uLWhxYjwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tZXNzYWl2
|
||||
YWx1YXRpb24tZmtiPC9tYXJrOmxhYmVsPjxtYXJrOmdvb2RzQW5kU2VydmljZXM+Z3VpdGFyZTwv
|
||||
bWFyazpnb29kc0FuZFNlcnZpY2VzPjxtYXJrOnJlZ051bT4xMjM0PC9tYXJrOnJlZ051bT48bWFy
|
||||
azpyZWdEYXRlPjIwMTMtMDEtMDFUMDA6MDA6MDAuMDAwWjwvbWFyazpyZWdEYXRlPjwvbWFyazp0
|
||||
cmFkZW1hcms+PC9tYXJrOm1hcms+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53
|
||||
My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il84NWI2MTY1NC05NmM4LTRkYjctOGVlOS0yYTJl
|
||||
YjA1OTMzOTUiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29y
|
||||
aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25h
|
||||
dHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1t
|
||||
b3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zYWE2ZjExMS1lMjI4LTRiNWIt
|
||||
OTc3MC00ZjkzYjE0MTI2MDkiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGht
|
||||
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIv
|
||||
PjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1l
|
||||
eGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0
|
||||
dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT5a
|
||||
VnlDb2lBb3M4TWV3SGFRQUhoNHZGcnFCS2l2QytDY29BZXd0Y1d6QmNNPTwvZHM6RGlnZXN0VmFs
|
||||
dWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfMzgzNDcyMDYtYjIxNS00OGE2
|
||||
LWI4NjMtMGIxYmUzZTk3NmY3Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRo
|
||||
bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zv
|
||||
cm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0
|
||||
L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+ZFBDR0NsN0NPandVYmE5WTVxeWEwRHEy
|
||||
WE5aeTY1VDR1M3ErUkt6RjlVbz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6
|
||||
U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il9kMTg3MmY4MS02ZjBlLTQ0ZGYtODEy
|
||||
Ni1jMDljZTk1YjlmNmIiPnNsbGZ0dEowUEl1S2wvdGhoOTZyM3pBaG1vb0NWTE9UNm1BcmlyRCs4
|
||||
MEgzSUpWRXNialh4OWtNTHlLZkM0UlVsRkZJdi9WVVd3clQKeG0xbVgyY2grVHFWRG9NczZHQWVY
|
||||
eVJxUGtQaGdvejhNeGNaWi80TS9SK25teEpSK1dsbVBSZ0Z4bFd3dDZBTFRkL0RKT0RJR1FDYQpt
|
||||
YUdVK0ZGdXpDS2NQZ0FISTBTSzZJR2JtZUZMNW1jRUNhZHBxNUxNamxGYU9vNmZkNTRGMDBkWDZ1
|
||||
RTc2cmo5U2pZdVJvNkVjQjE5ClkyMXk4YVFOVU9GVmY1N25lLytsT0UwaExuS1JveHlJNVhzUDV3
|
||||
MXlld0pQRXZ5ZVdvR1JzRVFhSmxBUmNqUDIwTVhiaEJLcVgrUE4KRzQrTHBlZXcyTlNZSnF2dzhE
|
||||
VFZ1ZGROR1RKMlhMajRGdk55eHc9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9
|
||||
Il8zODM0NzIwNi1iMjE1LTQ4YTYtYjg2My0wYjFiZTNlOTc2ZjciPjxkczpYNTA5RGF0YT48ZHM6
|
||||
WDUwOUNlcnRpZmljYXRlPk1JSUZPekNDQkNPZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBT
|
||||
bjNwN1hKbTBUMDJGb2d4S0NmTmhaY3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVC
|
||||
aE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpj
|
||||
M05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZI
|
||||
SmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVGd3TWpJNE1E
|
||||
QXdNREF3V2hjTk1qTXdNekF4TWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJn
|
||||
TlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25W
|
||||
egpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZS
|
||||
TlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJ
|
||||
QklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNG
|
||||
aFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5
|
||||
UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hm
|
||||
SkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFT
|
||||
RGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVh
|
||||
Y3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1
|
||||
Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJr
|
||||
ekNDQVk4d0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFw
|
||||
elZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5u
|
||||
bkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1Ey
|
||||
OXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1T
|
||||
OHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFX
|
||||
eHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0Rn
|
||||
WURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213
|
||||
dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01GRUdBMVVkSUFSS01FZ3dFQVlPS3dZ
|
||||
QkJBR0N5UnNCQllNN0RBb3dOQVlJS3dZQkJRVUhBZ0V3CktEQW1CZ2dyQmdFRkJRY0NBUllhYUhS
|
||||
MGNITTZMeTlqWVM1cFkyRnViaTV2Y21jdmNHbHNiM1F3RFFZSktvWklodmNOQVFFTEJRQUQKZ2dF
|
||||
QkFBdWpaMkljUjJEVnJ0YVJyQTU5ZU5ZQ2w0eGNzSk11OERRQ0h2MjhmVGZpL0JpWlk0SXI3Rjlr
|
||||
Rnk5NkQ3T1o4b0xZNXpqZgo0ZEh4RndIUHFIOERoNkpXc3pYdUhXMVphM1htbDBQYUh4Q1dSUzBY
|
||||
b2w4V3NISHBOeWdqTUJZZkowb2RWTTg4NVRaMUVsOVNpdUVICm55bkZCZ1NtaUZjOTl1UWQvWURS
|
||||
WnVHdi9BMEh5djd5Ujl0a0xFZEQzQTF1TkpCVzRQK0hKR3BkS2tZTDFRNXJVNytvSFZQdE1LS0kK
|
||||
M2lGa1VFc2JPNDVBVmQ3dlAvai83SnRBWlBiNmtvT1Y1bFppMkgxUkxjY0d3emRlem5oSmdkME45
|
||||
b2JiMHZuRTQxL1VTV2FmZFdSWgpWR2t3UHVxVGhsN3NDdHpySkg4WFkweGN1bStjZkx4MkVBSXdV
|
||||
bk9jYWI0PTwvZHM6WDUwOUNlcnRpZmljYXRlPjwvZHM6WDUwOURhdGE+PC9kczpLZXlJbmZvPjwv
|
||||
ZHM6U2lnbmF0dXJlPjwvc21kOnNpZ25lZE1hcms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,94 +0,0 @@
|
||||
Marks: Тест&случай
|
||||
smdID: 000000681526320357491-65535
|
||||
U-labels: xn----8sbnsi8abecn8b, xn--and-8cdv2am8bdecr6c, xn--et-8kcrxk3bcecp2c, xn--80ajng3aaecl4b
|
||||
notBefore: 2018-05-14T17:52:37.491Z
|
||||
notAfter: 2022-08-21T08:12:08.921Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il82ZDA4
|
||||
NDdkZS0yZWMyLTQ5YjgtYjRkMy05MTMwMDE0YmQxN2MiPjxzbWQ6aWQ+MDAwMDAwNjgxNTI2MzIw
|
||||
MzU3NDkxLTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MjozNy40OTFaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0yMVQwODoxMjowOC45MjFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmFkZW1hcms+PG1hcms6aWQ+MDAwMTQwMTUwMzA2MzYxMzE1MDMwNjM2MTMtMTwvbWFyazppZD48
|
||||
bWFyazptYXJrTmFtZT7QotC10YHRgiZhbXA70YHQu9GD0YfQsNC5PC9tYXJrOm1hcmtOYW1lPjxt
|
||||
YXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+0J3QsNGC0LDQu9GM0Y8g
|
||||
0JDQvdGC0L7QvdC+0LLQsDwvbWFyazpuYW1lPjxtYXJrOm9yZz7QkNC90YLQvtC90L7QstCwPC9t
|
||||
YXJrOm9yZz48bWFyazphZGRyPjxtYXJrOnN0cmVldD7Qn9GA0L7RgdC/0LXQutGCINCS0LXRgNC9
|
||||
0LDQtNGB0LrQvtCz0L4gMTU8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+0JzQvtGB0LrQstCwPC9t
|
||||
YXJrOmNpdHk+PG1hcms6cGM+MTE3NDg1PC9tYXJrOnBjPjxtYXJrOmNjPlJVPC9tYXJrOmNjPjwv
|
||||
bWFyazphZGRyPjxtYXJrOnZvaWNlPis3LjkxODgyMjE2NzQ8L21hcms6dm9pY2U+PG1hcms6ZW1h
|
||||
aWw+aW5mb0BleGFtcGxlLmV4YW1wbGU8L21hcms6ZW1haWw+PC9tYXJrOmhvbGRlcj48bWFyazpq
|
||||
dXJpc2RpY3Rpb24+VVM8L21hcms6anVyaXNkaWN0aW9uPjxtYXJrOmNsYXNzPjE1PC9tYXJrOmNs
|
||||
YXNzPjxtYXJrOmxhYmVsPnhuLS0tLThzYm5zaThhYmVjbjhiPC9tYXJrOmxhYmVsPjxtYXJrOmxh
|
||||
YmVsPnhuLS1hbmQtOGNkdjJhbThiZGVjcjZjPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1l
|
||||
dC04a2NyeGszYmNlY3AyYzwvbWFyazpsYWJlbD48bWFyazpsYWJlbD54bi0tODBham5nM2FhZWNs
|
||||
NGI8L21hcms6bGFiZWw+PG1hcms6Z29vZHNBbmRTZXJ2aWNlcz7Qs9C40YLQsNGA0LA8L21hcms6
|
||||
Z29vZHNBbmRTZXJ2aWNlcz48bWFyazpyZWdOdW0+MTIzNDwvbWFyazpyZWdOdW0+PG1hcms6cmVn
|
||||
RGF0ZT4yMDEzLTAxLTAxVDAwOjAwOjAwLjAwMFo8L21hcms6cmVnRGF0ZT48L21hcms6dHJhZGVt
|
||||
YXJrPjwvbWFyazptYXJrPjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3Jn
|
||||
LzIwMDAvMDkveG1sZHNpZyMiIElkPSJfOWM2NmZhMGUtMDY3ZS00YWQ0LWI4OWItZjM4NTA1NzQ1
|
||||
N2YwIj48ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09
|
||||
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVN
|
||||
ZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNy
|
||||
c2Etc2hhMjU2Ii8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNmQwODQ3ZGUtMmVjMi00OWI4LWI0ZDMt
|
||||
OTEzMDAxNGJkMTdjIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0
|
||||
cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6
|
||||
VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMx
|
||||
NG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8v
|
||||
d3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+Z2JvTEhP
|
||||
YStmMDR2QmxDNTk3RjdBU3U2cWVuNzNFcXBoM3NsMk5oN2dYZz08L2RzOkRpZ2VzdFZhbHVlPjwv
|
||||
ZHM6UmVmZXJlbmNlPjxkczpSZWZlcmVuY2UgVVJJPSIjXzg2MWFjZWM5LTRkNDItNDEyMC1iY2Ey
|
||||
LWQzMTlmMjlhOTRjNyI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0
|
||||
dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48
|
||||
ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxl
|
||||
bmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPlVxUzVYN25MKzdDaXdQaW54Z0RFRXl6Qy9tV1Zk
|
||||
cnZnbTVBeURVeWtzV2s9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25l
|
||||
ZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlIElkPSJfZjY5MTA1NTEtM2MxYi00ZjdhLWE2ZTAtNTU0
|
||||
MmJjM2NjMTgxIj5vODM5YTFUajJwQjhEaGU3M2RPdlRub3JlaVdFM1NlM2VySkJpWjB3ZkxvYXBK
|
||||
UEZsWXEzSm9wYXEyZjk2V2pIeHRIMjBoRHBiQVJZCi9jVjBsRzZaQkVxYllwRnJDOVd5TlMwN3ZD
|
||||
eXFkOFV1dXdKZHl1Y0lZVW52UlptMmg3d1hsM2V6T1JweStDSG43YnVZVitIN0FjanEKRDgxNHhq
|
||||
Zml0RVNzOE9ZdjJBaDNyV0QzcnplQzRPcjMrWWZLWFVYV01NMFRzSHVxbjBzR2ZEcGN4VXROSVJw
|
||||
S1BMY003THI5UE1vTwpkd1d0ay9ySXZ2MjdQMVZXVVBSZEtjZXZOcHBSdWpmTDc4R09qbmxkT1Z0
|
||||
RjhjcWJyZ1Uxc0pEV3JFZW5GY1VCRFB3VktrMGdmMnpPCnZEYjRSK3VFV0V5YWFyME45Y0xiU2hk
|
||||
M3pkZHVNQUNHVHYzSVBRPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJfODYx
|
||||
YWNlYzktNGQ0Mi00MTIwLWJjYTItZDMxOWYyOWE5NGM3Ij48ZHM6WDUwOURhdGE+PGRzOlg1MDlD
|
||||
ZXJ0aWZpY2F0ZT5NSUlGT3pDQ0JDT2dBd0lCQWdJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdY
|
||||
Sm0wVDAyRm9neEtDZk5oWmN3RFFZSktvWklodmNOCkFRRUxCUUF3ZkRFTE1Ba0dBMVVFQmhNQ1ZW
|
||||
TXhQREE2QmdOVkJBb1RNMGx1ZEdWeWJtVjBJRU52Y25CdmNtRjBhVzl1SUdadmNpQkIKYzNOcFoy
|
||||
NWxaQ0JPWVcxbGN5QmhibVFnVG5WdFltVnljekV2TUMwR0ExVUVBeE1tU1VOQlRrNGdWSEpoWkdW
|
||||
dFlYSnJJRU5zWldGeQphVzVuYUc5MWMyVWdVR2xzYjNRZ1EwRXdIaGNOTVRnd01qSTRNREF3TURB
|
||||
d1doY05Nak13TXpBeE1qTTFPVFU1V2pDQmp6RUxNQWtHCkExVUVCaE1DUWtVeElEQWVCZ05WQkFn
|
||||
VEYwSnlkWE56Wld4ekxVTmhjR2wwWVd3Z1VtVm5hVzl1TVJFd0R3WURWUVFIRXdoQ2NuVnoKYzJW
|
||||
c2N6RVJNQThHQTFVRUNoTUlSR1ZzYjJsMGRHVXhPREEyQmdOVkJBTVRMMGxEUVU1T0lGUk5RMGdn
|
||||
UVhWMGFHOXlhWHBsWkNCVQpjbUZrWlcxaGNtc2dVR2xzYjNRZ1ZtRnNhV1JoZEc5eU1JSUJJakFO
|
||||
QmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnhscDNLcFlIWDNXeUFzRmhTazNM
|
||||
d1dmbkdseG5VREZxRlpBM1VvdU1Zai9YaWdiTWtOZUVYSWpsa1JPS1Q0T1BHZlJ4L0xBeVJsUVEK
|
||||
akNNdjRxaGJrY1gxcDdhcjYzZmxxNFNaTlZjbDE1bDdoMHVUNThGelNmbmx6MHU1cmtIZkpJbUQ0
|
||||
MyttYVAvOGd2MzZGUjI3alc4Ugo5d1k0aGsrV3M0SUIwaUZTZDhTWHYxS3I4dy9KbU1RU0RraXVH
|
||||
K1JmSWl1YndRL2Z5N0VrajVRV2hQWncrbU14TktuSFVMeTN4WXoyCkx3VmZmdGp3VXVlYWN2cU5S
|
||||
Q2tNWGxDbE9BRHFmVDhvU1pvZURYZWhIdmxQc0xDZW1HQm9US3Vyc2tJUzY5RjB5UEVINWd6ZTBI
|
||||
K2YKOEZST3NJb0tTc1ZRMzRCNFMvam9FNjducHNKUFRkS3NOUEpUeVFJREFRQUJvNElCa3pDQ0FZ
|
||||
OHdEQVlEVlIwVEFRSC9CQUl3QURBZApCZ05WSFE0RUZnUVVvRnBZNzZwNXlvTkRSR3RRcHpWdVI4
|
||||
MVVXUTB3Z2NZR0ExVWRJd1NCdmpDQnU0QVV3NjArcHRZUkFFV0FYRHBYClNvcHQzREVObm5HaGdZ
|
||||
Q2tmakI4TVFzd0NRWURWUVFHRXdKVlV6RThNRG9HQTFVRUNoTXpTVzUwWlhKdVpYUWdRMjl5Y0c5
|
||||
eVlYUnAKYjI0Z1ptOXlJRUZ6YzJsbmJtVmtJRTVoYldWeklHRnVaQ0JPZFcxaVpYSnpNUzh3TFFZ
|
||||
RFZRUURFeVpKUTBGT1RpQlVjbUZrWlcxaApjbXNnUTJ4bFlYSnBibWRvYjNWelpTQlFhV3h2ZENC
|
||||
RFFZSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOCmhYa3dEZ1lEVlIw
|
||||
UEFRSC9CQVFEQWdlQU1EUUdBMVVkSHdRdE1Dc3dLYUFub0NXR0kyaDBkSEE2THk5amNtd3VhV05o
|
||||
Ym00dWIzSm4KTDNSdFkyaGZjR2xzYjNRdVkzSnNNRkVHQTFVZElBUktNRWd3RUFZT0t3WUJCQUdD
|
||||
eVJzQkJZTTdEQW93TkFZSUt3WUJCUVVIQWdFdwpLREFtQmdnckJnRUZCUWNDQVJZYWFIUjBjSE02
|
||||
THk5allTNXBZMkZ1Ymk1dmNtY3ZjR2xzYjNRd0RRWUpLb1pJaHZjTkFRRUxCUUFECmdnRUJBQXVq
|
||||
WjJJY1IyRFZydGFSckE1OWVOWUNsNHhjc0pNdThEUUNIdjI4ZlRmaS9CaVpZNElyN0Y5a0Z5OTZE
|
||||
N09aOG9MWTV6amYKNGRIeEZ3SFBxSDhEaDZKV3N6WHVIVzFaYTNYbWwwUGFIeENXUlMwWG9sOFdz
|
||||
SEhwTnlnak1CWWZKMG9kVk04ODVUWjFFbDlTaXVFSApueW5GQmdTbWlGYzk5dVFkL1lEUlp1R3Yv
|
||||
QTBIeXY3eVI5dGtMRWREM0ExdU5KQlc0UCtISkdwZEtrWUwxUTVyVTcrb0hWUHRNS0tJCjNpRmtV
|
||||
RXNiTzQ1QVZkN3ZQL2ovN0p0QVpQYjZrb09WNWxaaTJIMVJMY2NHd3pkZXpuaEpnZDBOOW9iYjB2
|
||||
bkU0MS9VU1dhZmRXUloKVkdrd1B1cVRobDdzQ3R6ckpIOFhZMHhjdW0rY2ZMeDJFQUl3VW5PY2Fi
|
||||
ND08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2RzOlNp
|
||||
Z25hdHVyZT48L3NtZDpzaWduZWRNYXJrPg==
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: الاختبار & لتقييم
|
||||
smdID: 000000781526320376959-65535
|
||||
U-labels: xn------nzeaagpf7azb2ppajr3fa, xn-----btdaafne4a7azpoaiq8ea, xn----ymcaaeld1a4a6onahp3ea, xn--mgbaadjcy1a8mmago8da
|
||||
notBefore: 2018-05-14T17:52:56.959Z
|
||||
notAfter: 2022-08-18T14:27:18.209Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il9mMGZi
|
||||
ZTM5Ny05ZmI0LTRmMmQtODlmNC1iMDI5YjQwMzU2ZWQiPjxzbWQ6aWQ+MDAwMDAwNzgxNTI2MzIw
|
||||
Mzc2OTU5LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1Mjo1Ni45NTlaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDoyNzoxOC4yMDlaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazpj
|
||||
b3VydD48bWFyazppZD4wMDAxNDQxNTAzMDY2NDE3MTUwMzA2NjQxNy0xPC9tYXJrOmlkPjxtYXJr
|
||||
Om1hcmtOYW1lPtin2YTYp9iu2KrYqNin2LEgJmFtcDsg2YTYqtmC2YrZitmFPC9tYXJrOm1hcmtO
|
||||
YW1lPjxtYXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+2YXZh9mG2K/Y
|
||||
syDYp9mE2YXYudmE2YjZhdin2KrZitipPC9tYXJrOm5hbWU+PG1hcms6YWRkcj48bWFyazpzdHJl
|
||||
ZXQ+2KzYudmB2LEg2KfYqNmGINiz2YrZhtin2KEgNzU8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+
|
||||
2YXZg9mG2KfYszwvbWFyazpjaXR5PjxtYXJrOnBjPjI5MDA8L21hcms6cGM+PG1hcms6Y2M+VVM8
|
||||
L21hcms6Y2M+PC9tYXJrOmFkZHI+PC9tYXJrOmhvbGRlcj48bWFyazpjb250YWN0IHR5cGU9ImFn
|
||||
ZW50Ij48bWFyazpuYW1lPtmF2YfZhtiv2LMg2KfZhNmF2LnZhNmI2YXYp9iq2YrYqTwvbWFyazpu
|
||||
YW1lPjxtYXJrOm9yZz7ZiNmD2KfZhNipPC9tYXJrOm9yZz48bWFyazphZGRyPjxtYXJrOnN0cmVl
|
||||
dD7YtNin2LHYuSDYrNi52YHYsSDYp9io2YYg2LPZitmG2KfYoSA3NTwvbWFyazpzdHJlZXQ+PG1h
|
||||
cms6Y2l0eT7ZhdmD2YbYp9izPC9tYXJrOmNpdHk+PG1hcms6cGM+MjkwMDwvbWFyazpwYz48bWFy
|
||||
azpjYz5NQTwvbWFyazpjYz48L21hcms6YWRkcj48bWFyazp2b2ljZT4rMjEyLjUyMjUzOTA0MDwv
|
||||
bWFyazp2b2ljZT48bWFyazpmYXg+KzIxMi41MjI1MzkwNDE8L21hcms6ZmF4PjxtYXJrOmVtYWls
|
||||
PmluZm9AYWdlbmN5LW1hcm9jY28uY29tPC9tYXJrOmVtYWlsPjwvbWFyazpjb250YWN0PjxtYXJr
|
||||
OmxhYmVsPnhuLS0tLS0tbnplYWFncGY3YXpiMnBwYWpyM2ZhPC9tYXJrOmxhYmVsPjxtYXJrOmxh
|
||||
YmVsPnhuLS0tLS1idGRhYWZuZTRhN2F6cG9haXE4ZWE8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+
|
||||
eG4tLS0teW1jYWFlbGQxYTRhNm9uYWhwM2VhPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1t
|
||||
Z2JhYWRqY3kxYThtbWFnbzhkYTwvbWFyazpsYWJlbD48bWFyazpnb29kc0FuZFNlcnZpY2VzPti6
|
||||
2YrYqtin2LE8L21hcms6Z29vZHNBbmRTZXJ2aWNlcz48bWFyazpyZWZOdW0+MTk4PC9tYXJrOnJl
|
||||
Zk51bT48bWFyazpwcm9EYXRlPjIwMTUtMDktMTVUMDA6MDA6MDAuMDAwWjwvbWFyazpwcm9EYXRl
|
||||
PjxtYXJrOmNjPlVTPC9tYXJrOmNjPjxtYXJrOmNvdXJ0TmFtZT7Yp9mE2K/Yp9ixINin2YTYqNmK
|
||||
2LbYp9ihPC9tYXJrOmNvdXJ0TmFtZT48L21hcms6Y291cnQ+PC9tYXJrOm1hcms+PGRzOlNpZ25h
|
||||
dHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il82
|
||||
NmZhMWNjZC04OTQ5LTRjYTgtYjIwYy0wYTAzYWZkZWI1NmEiPjxkczpTaWduZWRJbmZvPjxkczpD
|
||||
YW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8x
|
||||
MC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93
|
||||
d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNl
|
||||
IFVSST0iI19mMGZiZTM5Ny05ZmI0LTRmMmQtODlmNC1iMDI5YjQwMzU2ZWQiPjxkczpUcmFuc2Zv
|
||||
cm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3ht
|
||||
bGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRw
|
||||
Oi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRz
|
||||
OkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5j
|
||||
I3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT4xK0pvcVFqQ1BEb0tMRVkyb0xUMGZOUktVaGFpSHJW
|
||||
ZzREdHpyMG5rbTNnPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5j
|
||||
ZSBVUkk9IiNfNGI1ZDYxODktNDg0Ny00Yzg0LTgwZDMtMDQ4NTA0MTMzMTZlIj48ZHM6VHJhbnNm
|
||||
b3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94
|
||||
bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGht
|
||||
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFs
|
||||
dWU+OUw3WWY5bk1meTZVaTVlRkg5ZEJnRldVODlTeGJ2TEFSeE02K1ovTm9XQT08L2RzOkRpZ2Vz
|
||||
dFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUg
|
||||
SWQ9Il81YzhlY2ZkMy1lOTMxLTRkNzItYTMwOC1mYjhmM2JlYTJlZTMiPnZxN2FKMUxraHBxUmhn
|
||||
Zmx2NFBPeE1zK3R6MDBld0d2NUdFWlVJczhxVmNNemxLY2IzWTJJVGFjUklWcEZUekk1WDRsK29t
|
||||
My9RM2cKQzFXakpkL0VFSDVkc2o2VGZ1eDBsTXJ5YjFxN0tLRVlpTTc4eTlVWEhGblJpa0ZteEth
|
||||
SGJFbEpJQVhyRzFMb1BZV0RQQ0NJd2Vragp5L3VyV1E0Tm03aVZHczFxRVByMDZreGpaT1Vob2h1
|
||||
UThrMEdYMWMreXhIRE85eDUvOXl6WEg0UmpmN2VRWFZtK3ZkbXI5WktIRW9UCmJzK3R0RVFJUVA3
|
||||
dTB1dGhtUHpSOUNJeC9WOTFUYlB4dXhsd2ZCcE1GUEdsNzAxZk9Ha2xVb0tURUNwMjlOZFVlOUx2
|
||||
bXV2U0xzK1UKa2hKRWpNeUdMZUdCOFlLUTNoTUFtUklmdkhvZWVqWU9ETWRIbFE9PTwvZHM6U2ln
|
||||
bmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il80YjVkNjE4OS00ODQ3LTRjODQtODBkMy0wNDg1
|
||||
MDQxMzMxNmUiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZPekNDQkNPZ0F3
|
||||
SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhaY3dEUVlKS29a
|
||||
SWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1W
|
||||
MElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1W
|
||||
eWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJV
|
||||
Z1VHbHNiM1FnUTBFd0hoY05NVGd3TWpJNE1EQXdNREF3V2hjTk1qTXdNekF4TWpNMU9UVTVXakNC
|
||||
anpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dn
|
||||
VW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmww
|
||||
ZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFo
|
||||
Y21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFN
|
||||
SUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hp
|
||||
Z2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pO
|
||||
VmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRo
|
||||
aytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadytt
|
||||
TXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2
|
||||
bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2
|
||||
N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJrekNDQVk4d0RBWURWUjBUQVFIL0JBSXdBREFkCkJn
|
||||
TlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRB
|
||||
VXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpF
|
||||
OE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1W
|
||||
a0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFo
|
||||
CmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIw
|
||||
U24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0
|
||||
TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1
|
||||
WTNKc01GRUdBMVVkSUFSS01FZ3dFQVlPS3dZQkJBR0N5UnNCQllNN0RBb3dOQVlJS3dZQkJRVUhB
|
||||
Z0V3CktEQW1CZ2dyQmdFRkJRY0NBUllhYUhSMGNITTZMeTlqWVM1cFkyRnViaTV2Y21jdmNHbHNi
|
||||
M1F3RFFZSktvWklodmNOQVFFTEJRQUQKZ2dFQkFBdWpaMkljUjJEVnJ0YVJyQTU5ZU5ZQ2w0eGNz
|
||||
Sk11OERRQ0h2MjhmVGZpL0JpWlk0SXI3RjlrRnk5NkQ3T1o4b0xZNXpqZgo0ZEh4RndIUHFIOERo
|
||||
NkpXc3pYdUhXMVphM1htbDBQYUh4Q1dSUzBYb2w4V3NISHBOeWdqTUJZZkowb2RWTTg4NVRaMUVs
|
||||
OVNpdUVICm55bkZCZ1NtaUZjOTl1UWQvWURSWnVHdi9BMEh5djd5Ujl0a0xFZEQzQTF1TkpCVzRQ
|
||||
K0hKR3BkS2tZTDFRNXJVNytvSFZQdE1LS0kKM2lGa1VFc2JPNDVBVmQ3dlAvai83SnRBWlBiNmtv
|
||||
T1Y1bFppMkgxUkxjY0d3emRlem5oSmdkME45b2JiMHZuRTQxL1VTV2FmZFdSWgpWR2t3UHVxVGhs
|
||||
N3NDdHpySkg4WFkweGN1bStjZkx4MkVBSXdVbk9jYWI0PTwvZHM6WDUwOUNlcnRpZmljYXRlPjwv
|
||||
ZHM6WDUwOURhdGE+PC9kczpLZXlJbmZvPjwvZHM6U2lnbmF0dXJlPjwvc21kOnNpZ25lZE1hcms+
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,99 +0,0 @@
|
||||
Marks: 检查&查询
|
||||
smdID: 000000811526320382809-65535
|
||||
U-labels: xn----sh7bb78f789j, xn--and-bp0gd32k781m, xn--jvva96di40i
|
||||
notBefore: 2018-05-14T17:53:02.809Z
|
||||
notAfter: 2022-08-18T14:36:50.931Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il84NWVl
|
||||
ZjE2OC1kOGE0LTQzYTYtOTRlZS1jNDk5MDcxN2ZkY2YiPjxzbWQ6aWQ+MDAwMDAwODExNTI2MzIw
|
||||
MzgyODA5LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzowMi44MDlaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDozNjo1MC45MzFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmVhdHlPclN0YXR1dGU+PG1hcms6aWQ+MDAwMTQ2MTUwMzA2Njk3NjE1MDMwNjY5NzYtMTwvbWFy
|
||||
azppZD48bWFyazptYXJrTmFtZT7mo4Dmn6UmYW1wO+afpeivojwvbWFyazptYXJrTmFtZT48bWFy
|
||||
azpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj48bWFyazpvcmc+5bel56iL5aSEPC9tYXJrOm9y
|
||||
Zz48bWFyazphZGRyPjxtYXJrOnN0cmVldD7pppnmuK/kuJzot6825Y+377yMNeWPt+alvO+8jDjl
|
||||
j7flrqQ8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+6Z2S5bKb5biCPC9tYXJrOmNpdHk+PG1hcms6
|
||||
cGM+MzUwMDwvbWFyazpwYz48bWFyazpjYz5DTjwvbWFyazpjYz48L21hcms6YWRkcj48L21hcms6
|
||||
aG9sZGVyPjxtYXJrOmNvbnRhY3QgdHlwZT0iYWdlbnQiPjxtYXJrOm5hbWU+5p2O5bCP5pa5PC9t
|
||||
YXJrOm5hbWU+PG1hcms6b3JnPuW3peeoi+WkhDwvbWFyazpvcmc+PG1hcms6YWRkcj48bWFyazpz
|
||||
dHJlZXQ+6aaZ5riv5Lic6LevNuWPt++8jDXlj7fmpbzvvIw45Y+35a6kPC9tYXJrOnN0cmVldD48
|
||||
bWFyazpjaXR5PumdkuWym+W4gjwvbWFyazpjaXR5PjxtYXJrOnBjPjM1MDA8L21hcms6cGM+PG1h
|
||||
cms6Y2M+Q048L21hcms6Y2M+PC9tYXJrOmFkZHI+PG1hcms6dm9pY2U+Kzg2LjEwODQ2NTcxNzM8
|
||||
L21hcms6dm9pY2U+PG1hcms6ZmF4Pis4Ni4xMDg0NjU3MTc1PC9tYXJrOmZheD48bWFyazplbWFp
|
||||
bD5pbmZvQGNoaW5lc2UtYWdlbmN5LmNvbTwvbWFyazplbWFpbD48L21hcms6Y29udGFjdD48bWFy
|
||||
azpwcm90ZWN0aW9uPjxtYXJrOmNjPlVTPC9tYXJrOmNjPjxtYXJrOnJ1bGluZz5DTjwvbWFyazpy
|
||||
dWxpbmc+PC9tYXJrOnByb3RlY3Rpb24+PG1hcms6bGFiZWw+eG4tLS0tc2g3YmI3OGY3ODlqPC9t
|
||||
YXJrOmxhYmVsPjxtYXJrOmxhYmVsPnhuLS1hbmQtYnAwZ2QzMms3ODFtPC9tYXJrOmxhYmVsPjxt
|
||||
YXJrOmxhYmVsPnhuLS1qdnZhOTZkaTQwaTwvbWFyazpsYWJlbD48bWFyazpnb29kc0FuZFNlcnZp
|
||||
Y2VzPiDlkInku5Y8L21hcms6Z29vZHNBbmRTZXJ2aWNlcz48bWFyazpyZWZOdW0+MTIzNDwvbWFy
|
||||
azpyZWZOdW0+PG1hcms6cHJvRGF0ZT4yMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFo8L21hcms6cHJv
|
||||
RGF0ZT48bWFyazp0aXRsZT5UZXN0IFRyZWF0eTwvbWFyazp0aXRsZT48bWFyazpleGVjRGF0ZT4y
|
||||
MDEzLTAyLTAyVDAwOjAwOjAwLjAwMFo8L21hcms6ZXhlY0RhdGU+PC9tYXJrOnRyZWF0eU9yU3Rh
|
||||
dHV0ZT48L21hcms6bWFyaz48ZHM6U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9y
|
||||
Zy8yMDAwLzA5L3htbGRzaWcjIiBJZD0iXzViZjE4MzY1LTNhYjYtNDI0YS04NTA1LTIyYjEyZTI2
|
||||
YWM2NyI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGht
|
||||
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJl
|
||||
TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUj
|
||||
cnNhLXNoYTI1NiIvPjxkczpSZWZlcmVuY2UgVVJJPSIjXzg1ZWVmMTY4LWQ4YTQtNDNhNi05NGVl
|
||||
LWM0OTkwNzE3ZmRjZiI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0
|
||||
dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PGRz
|
||||
OlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1j
|
||||
MTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDov
|
||||
L3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPi9pbWJv
|
||||
aDFoMGFROTNZOU5UTnAzNlpGYUg5UDNjbUNXQmlJUGVWQmUyWXc9PC9kczpEaWdlc3RWYWx1ZT48
|
||||
L2RzOlJlZmVyZW5jZT48ZHM6UmVmZXJlbmNlIFVSST0iI19iMjgwM2NkOS00M2M4LTQ4M2ItOTM4
|
||||
ZC03ZGRkM2FlZDQ4NDUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJo
|
||||
dHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+
|
||||
PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1s
|
||||
ZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT5ROU4xZllXb0U5VmJka2toSThVMThZQUQySzVV
|
||||
b0xCT2dlUmtOZWNrRy9FPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PC9kczpTaWdu
|
||||
ZWRJbmZvPjxkczpTaWduYXR1cmVWYWx1ZSBJZD0iX2MyMGUxYjhlLTA3YmItNDM2MC05ODRlLWEz
|
||||
ZDNmNGE5MWNiMiI+d1FBTm5xcldIQll1dVo1WlpQZzF6b2srOGpxa0ZsWmVlSnMvNGdHYW13K2lt
|
||||
VmVMUkYzYk1TdVJBVjBiKytJRlNGL2VUL2M2QjkwTwo3Z0h2TlhIV25BRStWK2lwdFhSYmI5OHd0
|
||||
YjBkTGh1NGFkNFBGN1ZHcWhmU1FPSUlMVHpUblQ2UkkwZXpVbUdEYzJ6ZXlIb2F0WWFKCm1XUXBy
|
||||
UzcvY2ozL29DRVQ3OU1IelJCMDduN0VuSjlIaUhnYXdWbjhXUnJPSFNBaVVpZEpBcmtQTVNTRVdB
|
||||
SG1PVUNvMzQ4MnI5WXMKVkhmNFVmV3ROMU91Nlo0TWFIbkk1SGRqQ3J6ekowVE8yblYydHJqandR
|
||||
YmVFQ3Q0bDMyNzlKdkpsWVdYYnBYQ3dKaGYzdjlwUHV0YgpYS3VqWkZvck1LeERWVWlzT2hRaW9a
|
||||
bHZvRVkwcFA0bGJUZkdXQT09PC9kczpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5mbyBJZD0iX2Iy
|
||||
ODAzY2Q5LTQzYzgtNDgzYi05MzhkLTdkZGQzYWVkNDg0NSI+PGRzOlg1MDlEYXRhPjxkczpYNTA5
|
||||
Q2VydGlmaWNhdGU+TUlJRk96Q0NCQ09nQXdJQkFnSWdMckFiZXZvYWU1MnkzZjZDMnRCMFNuM3A3
|
||||
WEptMFQwMkZvZ3hLQ2ZOaFpjd0RRWUpLb1pJaHZjTgpBUUVMQlFBd2ZERUxNQWtHQTFVRUJoTUNW
|
||||
Vk14UERBNkJnTlZCQW9UTTBsdWRHVnlibVYwSUVOdmNuQnZjbUYwYVc5dUlHWnZjaUJCCmMzTnBa
|
||||
MjVsWkNCT1lXMWxjeUJoYm1RZ1RuVnRZbVZ5Y3pFdk1DMEdBMVVFQXhNbVNVTkJUazRnVkhKaFpH
|
||||
VnRZWEpySUVOc1pXRnkKYVc1bmFHOTFjMlVnVUdsc2IzUWdRMEV3SGhjTk1UZ3dNakk0TURBd01E
|
||||
QXdXaGNOTWpNd016QXhNak0xT1RVNVdqQ0JqekVMTUFrRwpBMVVFQmhNQ1FrVXhJREFlQmdOVkJB
|
||||
Z1RGMEp5ZFhOelpXeHpMVU5oY0dsMFlXd2dVbVZuYVc5dU1SRXdEd1lEVlFRSEV3aENjblZ6CmMy
|
||||
VnNjekVSTUE4R0ExVUVDaE1JUkdWc2IybDBkR1V4T0RBMkJnTlZCQU1UTDBsRFFVNU9JRlJOUTBn
|
||||
Z1FYVjBhRzl5YVhwbFpDQlUKY21Ga1pXMWhjbXNnVUdsc2IzUWdWbUZzYVdSaGRHOXlNSUlCSWpB
|
||||
TkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQp4bHAzS3BZSFgzV3lBc0ZoU2sz
|
||||
THdXZm5HbHhuVURGcUZaQTNVb3VNWWovWGlnYk1rTmVFWElqbGtST0tUNE9QR2ZSeC9MQXlSbFFR
|
||||
CmpDTXY0cWhia2NYMXA3YXI2M2ZscTRTWk5WY2wxNWw3aDB1VDU4RnpTZm5sejB1NXJrSGZKSW1E
|
||||
NDMrbWFQLzhndjM2RlIyN2pXOFIKOXdZNGhrK1dzNElCMGlGU2Q4U1h2MUtyOHcvSm1NUVNEa2l1
|
||||
RytSZklpdWJ3US9meTdFa2o1UVdoUFp3K21NeE5LbkhVTHkzeFl6MgpMd1ZmZnRqd1V1ZWFjdnFO
|
||||
UkNrTVhsQ2xPQURxZlQ4b1Nab2VEWGVoSHZsUHNMQ2VtR0JvVEt1cnNrSVM2OUYweVBFSDVnemUw
|
||||
SCtmCjhGUk9zSW9LU3NWUTM0QjRTL2pvRTY3bnBzSlBUZEtzTlBKVHlRSURBUUFCbzRJQmt6Q0NB
|
||||
WTh3REFZRFZSMFRBUUgvQkFJd0FEQWQKQmdOVkhRNEVGZ1FVb0ZwWTc2cDV5b05EUkd0UXB6VnVS
|
||||
ODFVV1Ewd2djWUdBMVVkSXdTQnZqQ0J1NEFVdzYwK3B0WVJBRVdBWERwWApTb3B0M0RFTm5uR2hn
|
||||
WUNrZmpCOE1Rc3dDUVlEVlFRR0V3SlZVekU4TURvR0ExVUVDaE16U1c1MFpYSnVaWFFnUTI5eWNH
|
||||
OXlZWFJwCmIyNGdabTl5SUVGemMybG5ibVZrSUU1aGJXVnpJR0Z1WkNCT2RXMWlaWEp6TVM4d0xR
|
||||
WURWUVFERXlaSlEwRk9UaUJVY21Ga1pXMWgKY21zZ1EyeGxZWEpwYm1kb2IzVnpaU0JRYVd4dmRD
|
||||
QkRRWUlnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTgpoWGt3RGdZRFZS
|
||||
MFBBUUgvQkFRREFnZUFNRFFHQTFVZEh3UXRNQ3N3S2FBbm9DV0dJMmgwZEhBNkx5OWpjbXd1YVdO
|
||||
aGJtNHViM0puCkwzUnRZMmhmY0dsc2IzUXVZM0pzTUZFR0ExVWRJQVJLTUVnd0VBWU9Ld1lCQkFH
|
||||
Q3lSc0JCWU03REFvd05BWUlLd1lCQlFVSEFnRXcKS0RBbUJnZ3JCZ0VGQlFjQ0FSWWFhSFIwY0hN
|
||||
Nkx5OWpZUzVwWTJGdWJpNXZjbWN2Y0dsc2IzUXdEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUF1
|
||||
aloySWNSMkRWcnRhUnJBNTllTllDbDR4Y3NKTXU4RFFDSHYyOGZUZmkvQmlaWTRJcjdGOWtGeTk2
|
||||
RDdPWjhvTFk1empmCjRkSHhGd0hQcUg4RGg2Sldzelh1SFcxWmEzWG1sMFBhSHhDV1JTMFhvbDhX
|
||||
c0hIcE55Z2pNQllmSjBvZFZNODg1VFoxRWw5U2l1RUgKbnluRkJnU21pRmM5OXVRZC9ZRFJadUd2
|
||||
L0EwSHl2N3lSOXRrTEVkRDNBMXVOSkJXNFArSEpHcGRLa1lMMVE1clU3K29IVlB0TUtLSQozaUZr
|
||||
VUVzYk80NUFWZDd2UC9qLzdKdEFaUGI2a29PVjVsWmkySDFSTGNjR3d6ZGV6bmhKZ2QwTjlvYmIw
|
||||
dm5FNDEvVVNXYWZkV1JaClZHa3dQdXFUaGw3c0N0enJKSDhYWTB4Y3VtK2NmTHgyRUFJd1VuT2Nh
|
||||
YjQ9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpT
|
||||
aWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4=
|
||||
-----END ENCODED SMD-----
|
||||
@@ -1,103 +0,0 @@
|
||||
Marks: Test & Validate
|
||||
smdID: 000000881526320394478-65535
|
||||
U-labels: test---validate, test--validate, test-and-validate, test-andvalidate, test-validate, testand-validate, testandvalidate, testvalidate
|
||||
notBefore: 2018-05-14T17:53:14.478Z
|
||||
notAfter: 2022-08-18T14:57:36.681Z
|
||||
-----BEGIN ENCODED SMD-----
|
||||
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht
|
||||
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8yOThh
|
||||
NmVjZC0xN2I4LTQ3ZTAtYWQ4MC1hMDEyOGIyMzI0MTYiPjxzbWQ6aWQ+MDAwMDAwODgxNTI2MzIw
|
||||
Mzk0NDc4LTY1NTM1PC9zbWQ6aWQ+PHNtZDppc3N1ZXJJbmZvIGlzc3VlcklEPSI2NTUzNSI+PHNt
|
||||
ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz48c21kOmVtYWlsPm5vdGF2YWls
|
||||
YWJsZUBleGFtcGxlLmNvbTwvc21kOmVtYWlsPjxzbWQ6dXJsPnd3dy5leGFtcGxlLmNvbTwvc21k
|
||||
OnVybD48c21kOnZvaWNlPiszMi4yMDAwMDAwMDwvc21kOnZvaWNlPjwvc21kOmlzc3VlckluZm8+
|
||||
PHNtZDpub3RCZWZvcmU+MjAxOC0wNS0xNFQxNzo1MzoxNC40NzhaPC9zbWQ6bm90QmVmb3JlPjxz
|
||||
bWQ6bm90QWZ0ZXI+MjAyMi0wOC0xOFQxNDo1NzozNi42ODFaPC9zbWQ6bm90QWZ0ZXI+PG1hcms6
|
||||
bWFyayB4bWxuczptYXJrPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm1hcmstMS4wIj48bWFyazp0
|
||||
cmVhdHlPclN0YXR1dGU+PG1hcms6aWQ+MDAwMTM3MTUwMzA2ODIzMjE1MDMwNjgyMzItMTwvbWFy
|
||||
azppZD48bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPjxt
|
||||
YXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPjxtYXJrOm5hbWU+VG9ueSBIb2xsYW5kPC9t
|
||||
YXJrOm5hbWU+PG1hcms6b3JnPkFnIGNvcnBvcmF0aW9uPC9tYXJrOm9yZz48bWFyazphZGRyPjxt
|
||||
YXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+QXJj
|
||||
YWRpYTwvbWFyazpjaXR5PjxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPjxtYXJrOmNjPlVTPC9tYXJr
|
||||
OmNjPjwvbWFyazphZGRyPjwvbWFyazpob2xkZXI+PG1hcms6Y29udGFjdCB0eXBlPSJhZ2VudCI+
|
||||
PG1hcms6bmFtZT5Ub255IEhvbGxhbmQ8L21hcms6bmFtZT48bWFyazpvcmc+QWcgY29ycG9yYXRp
|
||||
b248L21hcms6b3JnPjxtYXJrOmFkZHI+PG1hcms6c3RyZWV0PkJyaWdodCBBdmVudWUgMTMwNSA8
|
||||
L21hcms6c3RyZWV0PjxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PjxtYXJrOnNwPkNBPC9t
|
||||
YXJrOnNwPjxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPjxtYXJrOmNjPlVTPC9tYXJrOmNjPjwvbWFy
|
||||
azphZGRyPjxtYXJrOnZvaWNlPisxLjIwMjU1NjIzMDI8L21hcms6dm9pY2U+PG1hcms6ZmF4Pisx
|
||||
LjIwMjU1NjIzMDE8L21hcms6ZmF4PjxtYXJrOmVtYWlsPmluZm9AYWdjb3Jwb3JhdGlvbi5jb208
|
||||
L21hcms6ZW1haWw+PC9tYXJrOmNvbnRhY3Q+PG1hcms6cHJvdGVjdGlvbj48bWFyazpjYz5VUzwv
|
||||
bWFyazpjYz48bWFyazpydWxpbmc+VVM8L21hcms6cnVsaW5nPjwvbWFyazpwcm90ZWN0aW9uPjxt
|
||||
YXJrOmxhYmVsPnRlc3QtLS12YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0LS12
|
||||
YWxpZGF0ZTwvbWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazps
|
||||
YWJlbD48bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmxhYmVs
|
||||
PnRlc3QtdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6bGFiZWw+dGVzdGFuZC12YWxpZGF0ZTwv
|
||||
bWFyazpsYWJlbD48bWFyazpsYWJlbD50ZXN0YW5kdmFsaWRhdGU8L21hcms6bGFiZWw+PG1hcms6
|
||||
bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPjxtYXJrOmdvb2RzQW5kU2VydmljZXM+Z3Vp
|
||||
dGFyPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+PG1hcms6cmVmTnVtPjEyMzQ8L21hcms6cmVmTnVt
|
||||
PjxtYXJrOnByb0RhdGU+MjAwMC0wMS0wMVQwMDowMDowMC4wMDBaPC9tYXJrOnByb0RhdGU+PG1h
|
||||
cms6dGl0bGU+Z3VpdGFyPC9tYXJrOnRpdGxlPjxtYXJrOmV4ZWNEYXRlPjIwMTMtMDItMDJUMDA6
|
||||
MDA6MDAuMDAwWjwvbWFyazpleGVjRGF0ZT48L21hcms6dHJlYXR5T3JTdGF0dXRlPjwvbWFyazpt
|
||||
YXJrPjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1s
|
||||
ZHNpZyMiIElkPSJfNWI5ZmQ0MWItMzYwOS00NDM3LTk2ZTMtYTUyM2I4YmQ4MTA1Ij48ZHM6U2ln
|
||||
bmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cu
|
||||
dzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVNZXRob2QgQWxnb3Jp
|
||||
dGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2Etc2hhMjU2Ii8+
|
||||
PGRzOlJlZmVyZW5jZSBVUkk9IiNfMjk4YTZlY2QtMTdiOC00N2UwLWFkODAtYTAxMjhiMjMyNDE2
|
||||
Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5v
|
||||
cmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJhbnNmb3JtIEFs
|
||||
Z29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpU
|
||||
cmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y
|
||||
MDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+bGVIUzVtV2podHZZaWF2ZlQz
|
||||
RWs1ZHRYSEFjbzV0dWlwVlRpVmM4NkxlRT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNl
|
||||
PjxkczpSZWZlcmVuY2UgVVJJPSIjX2FhYzFkZTQzLTFmMTAtNGRiOC1hZTRhLWZmM2MzZTdjMzgw
|
||||
MCI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMu
|
||||
b3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0
|
||||
aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+
|
||||
PGRzOkRpZ2VzdFZhbHVlPkJVcmNZaUxZZ0lKYWJBbXlMbXBNZDBsNEZIVEF4SkgvWVlsNTRyUHpw
|
||||
MWM9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEluZm8+PGRzOlNp
|
||||
Z25hdHVyZVZhbHVlIElkPSJfYjViMjhjYmUtZmEzYS00NDhjLTk1ZWEtZWE0YWUxYTgxMmQ5Ij5Y
|
||||
WHU5eXo3Y045R0hQQ0tUUkxqT0VSRWRBM0hSejVlQkw2RmlSeU5VbkFGT2htRUVYZC9welBZeitm
|
||||
d01vdktkMldjaWVDaHp1dmZoCjZYSUdOaWMycVpGQmpodTBBYXp6bjBueHd4QkYrRngwQ3lxb3pR
|
||||
MitnZ2pwOUxubExKQ2hHcEhLMjFnOFc2RFpGVndXaXVLbjhMeGkKNWxzTDV4WFgvVllSVHh0OGQ2
|
||||
b2tLeDM1bnVXbmx0RUc4Uldoa0JaZzBhaEZBZjl3c0FRV29wN1JucFc1RkQ1WjMyc3pYekV3U3pU
|
||||
cApsR0JVV0xhb3ZMck9lMFVSM1VNWUU1SE1NL3l3bjZSd2ExMWNBeTVwekVhSzRHQXl3NTEvdlJS
|
||||
L0ZXS3o3S3Fva2hvTDk4OGV2b1FzClNlc2tmSWRGb3BGbWdKQTd6YzdWWmdhV0ozanhKOGRORXpo
|
||||
TFhnPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJfYWFjMWRlNDMtMWYxMC00
|
||||
ZGI4LWFlNGEtZmYzYzNlN2MzODAwIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5N
|
||||
SUlGT3pDQ0JDT2dBd0lCQWdJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtD
|
||||
Zk5oWmN3RFFZSktvWklodmNOCkFRRUxCUUF3ZkRFTE1Ba0dBMVVFQmhNQ1ZWTXhQREE2QmdOVkJB
|
||||
b1RNMGx1ZEdWeWJtVjBJRU52Y25CdmNtRjBhVzl1SUdadmNpQkIKYzNOcFoyNWxaQ0JPWVcxbGN5
|
||||
QmhibVFnVG5WdFltVnljekV2TUMwR0ExVUVBeE1tU1VOQlRrNGdWSEpoWkdWdFlYSnJJRU5zWldG
|
||||
eQphVzVuYUc5MWMyVWdVR2xzYjNRZ1EwRXdIaGNOTVRnd01qSTRNREF3TURBd1doY05Nak13TXpB
|
||||
eE1qTTFPVFU1V2pDQmp6RUxNQWtHCkExVUVCaE1DUWtVeElEQWVCZ05WQkFnVEYwSnlkWE56Wld4
|
||||
ekxVTmhjR2wwWVd3Z1VtVm5hVzl1TVJFd0R3WURWUVFIRXdoQ2NuVnoKYzJWc2N6RVJNQThHQTFV
|
||||
RUNoTUlSR1ZzYjJsMGRHVXhPREEyQmdOVkJBTVRMMGxEUVU1T0lGUk5RMGdnUVhWMGFHOXlhWHBs
|
||||
WkNCVQpjbUZrWlcxaGNtc2dVR2xzYjNRZ1ZtRnNhV1JoZEc5eU1JSUJJakFOQmdrcWhraUc5dzBC
|
||||
QVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnhscDNLcFlIWDNXeUFzRmhTazNMd1dmbkdseG5VREZx
|
||||
RlpBM1VvdU1Zai9YaWdiTWtOZUVYSWpsa1JPS1Q0T1BHZlJ4L0xBeVJsUVEKakNNdjRxaGJrY1gx
|
||||
cDdhcjYzZmxxNFNaTlZjbDE1bDdoMHVUNThGelNmbmx6MHU1cmtIZkpJbUQ0MyttYVAvOGd2MzZG
|
||||
UjI3alc4Ugo5d1k0aGsrV3M0SUIwaUZTZDhTWHYxS3I4dy9KbU1RU0RraXVHK1JmSWl1YndRL2Z5
|
||||
N0VrajVRV2hQWncrbU14TktuSFVMeTN4WXoyCkx3VmZmdGp3VXVlYWN2cU5SQ2tNWGxDbE9BRHFm
|
||||
VDhvU1pvZURYZWhIdmxQc0xDZW1HQm9US3Vyc2tJUzY5RjB5UEVINWd6ZTBIK2YKOEZST3NJb0tT
|
||||
c1ZRMzRCNFMvam9FNjducHNKUFRkS3NOUEpUeVFJREFRQUJvNElCa3pDQ0FZOHdEQVlEVlIwVEFR
|
||||
SC9CQUl3QURBZApCZ05WSFE0RUZnUVVvRnBZNzZwNXlvTkRSR3RRcHpWdVI4MVVXUTB3Z2NZR0Ex
|
||||
VWRJd1NCdmpDQnU0QVV3NjArcHRZUkFFV0FYRHBYClNvcHQzREVObm5HaGdZQ2tmakI4TVFzd0NR
|
||||
WURWUVFHRXdKVlV6RThNRG9HQTFVRUNoTXpTVzUwWlhKdVpYUWdRMjl5Y0c5eVlYUnAKYjI0Z1pt
|
||||
OXlJRUZ6YzJsbmJtVmtJRTVoYldWeklHRnVaQ0JPZFcxaVpYSnpNUzh3TFFZRFZRUURFeVpKUTBG
|
||||
T1RpQlVjbUZrWlcxaApjbXNnUTJ4bFlYSnBibWRvYjNWelpTQlFhV3h2ZENCRFFZSWdMckFiZXZv
|
||||
YWU1MnkzZjZDMnRCMFNuM3A3WEptMFQwMkZvZ3hLQ2ZOCmhYa3dEZ1lEVlIwUEFRSC9CQVFEQWdl
|
||||
QU1EUUdBMVVkSHdRdE1Dc3dLYUFub0NXR0kyaDBkSEE2THk5amNtd3VhV05oYm00dWIzSm4KTDNS
|
||||
dFkyaGZjR2xzYjNRdVkzSnNNRkVHQTFVZElBUktNRWd3RUFZT0t3WUJCQUdDeVJzQkJZTTdEQW93
|
||||
TkFZSUt3WUJCUVVIQWdFdwpLREFtQmdnckJnRUZCUWNDQVJZYWFIUjBjSE02THk5allTNXBZMkZ1
|
||||
Ymk1dmNtY3ZjR2xzYjNRd0RRWUpLb1pJaHZjTkFRRUxCUUFECmdnRUJBQXVqWjJJY1IyRFZydGFS
|
||||
ckE1OWVOWUNsNHhjc0pNdThEUUNIdjI4ZlRmaS9CaVpZNElyN0Y5a0Z5OTZEN09aOG9MWTV6amYK
|
||||
NGRIeEZ3SFBxSDhEaDZKV3N6WHVIVzFaYTNYbWwwUGFIeENXUlMwWG9sOFdzSEhwTnlnak1CWWZK
|
||||
MG9kVk04ODVUWjFFbDlTaXVFSApueW5GQmdTbWlGYzk5dVFkL1lEUlp1R3YvQTBIeXY3eVI5dGtM
|
||||
RWREM0ExdU5KQlc0UCtISkdwZEtrWUwxUTVyVTcrb0hWUHRNS0tJCjNpRmtVRXNiTzQ1QVZkN3ZQ
|
||||
L2ovN0p0QVpQYjZrb09WNWxaaTJIMVJMY2NHd3pkZXpuaEpnZDBOOW9iYjB2bkU0MS9VU1dhZmRX
|
||||
UloKVkdrd1B1cVRobDdzQ3R6ckpIOFhZMHhjdW0rY2ZMeDJFQUl3VW5PY2FiND08L2RzOlg1MDlD
|
||||
ZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2RzOlNpZ25hdHVyZT48L3Nt
|
||||
ZDpzaWduZWRNYXJrPg==
|
||||
-----END ENCODED SMD-----
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user