forked from cwtch.im/cwtch-ui
Compare commits
1 Commits
trunk
...
scrollbars
Author | SHA1 | Date |
---|---|---|
Sarah Jamie Lewis | cb582751b2 |
12
.drone.yml
12
.drone.yml
|
@ -60,18 +60,6 @@ steps:
|
|||
- tar -czf cwtch-`cat ../VERSION`.tar.gz cwtch
|
||||
- rm -r cwtch
|
||||
|
||||
- name: linux-ui-tests
|
||||
image: openpriv/flutter-desktop:linux-fstable-3.3.9
|
||||
volumes:
|
||||
- name: deps
|
||||
path: /root/.pub-cache
|
||||
commands:
|
||||
- # todo: add xvfb to openpriv/flutter-desktop:linux-fstable-3.7
|
||||
- sudo apt update
|
||||
- sudo apt-get install -y xvfb
|
||||
- ./fetch-tor.sh
|
||||
- ./run-tests-headless.sh 02_save_load
|
||||
|
||||
- name: test-build-android
|
||||
image: cirrusci/flutter:3.3.8
|
||||
when:
|
||||
|
|
|
@ -41,29 +41,15 @@ app.*.symbols
|
|||
app.*.map.json
|
||||
|
||||
# Tor
|
||||
*data-dir*
|
||||
data-dir*
|
||||
|
||||
# Test Artificats
|
||||
*.log
|
||||
flutter_gherkin
|
||||
run-tests.env
|
||||
report.json
|
||||
package.
|
||||
|
||||
# Compiled Libs
|
||||
linux/tor
|
||||
linux/libCwtch.so
|
||||
android/cwtch/cwtch.aar
|
||||
android/app/src/main/jniLibs/*/libtor.so
|
||||
*.dylib
|
||||
integration_test/gherkin_suite_test.g.dart
|
||||
integration_test/gherkin_suite_test.dart
|
||||
integration_test/gherkin/
|
||||
integration_test/CustomSteps.md
|
||||
analysis_options.yaml
|
||||
integration_test/env/default/tor
|
||||
linux/Tor
|
||||
linux/tor.tar.gz
|
||||
libCwtch.dylib
|
||||
|
||||
coverage
|
||||
test/failures
|
||||
|
|
|
@ -51,8 +51,6 @@ android {
|
|||
targetSdkVersion 31
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
multiDexEnabled true
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
|
@ -95,13 +93,6 @@ dependencies {
|
|||
implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
|
||||
implementation "com.android.support.constraint:constraint-layout:2.0.4"
|
||||
|
||||
// Test Dependencies
|
||||
testImplementation 'junit:junit:4.12'
|
||||
|
||||
// https://developer.android.com/jetpack/androidx/releases/test/#1.2.0
|
||||
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
|
||||
// WorkManager
|
||||
|
||||
// (Java only)
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
package im.cwtch.flwtch;
|
||||
|
||||
import androidx.test.rule.ActivityTestRule;
|
||||
import dev.flutter.plugins.integration_test.FlutterTestRunner;
|
||||
import org.junit.Rule;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@RunWith(FlutterTestRunner.class)
|
||||
public class MainActivityTest {
|
||||
@Rule
|
||||
public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class, true, false);
|
||||
}
|
|
@ -7,7 +7,7 @@ buildscript {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
||||
classpath 'com.android.tools.build:gradle:3.5.4'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#Mon Jun 20 10:33:21 PDT 2022
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
VERSION=`cat LIBCWTCH-GO-MACOS.version`
|
||||
echo $VERSION
|
||||
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-go-macos-$VERSION/libCwtch.x64.dylib --output libCwtch.x64.dylib
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-go-macos-$VERSION/libCwtch.arm64.dylib --output libCwtch.arm64.dylib
|
||||
curl https://build.openprivacy.ca/files/libCwtch-go-macos-$VERSION/libCwtch.x64.dylib --output libCwtch.x64.dylib
|
||||
curl https://build.openprivacy.ca/files/libCwtch-go-macos-$VERSION/libCwtch.arm64.dylib --output libCwtch.arm64.dylib
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
$Env:VERSION = type LIBCWTCH-GO.version
|
||||
echo $Env:VERSION
|
||||
|
||||
# This should automatically fail on error...
|
||||
Invoke-WebRequest -Uri https://build.openprivacy.ca/files/libCwtch-go-$Env:VERSION/libCwtch.dll -OutFile windows/libCwtch.dll
|
||||
|
||||
#Invoke-WebRequest -Uri https://build.openprivacy.ca/files/libCwtch-go-$Env:VERSION/cwtch.aar -OutFile android/cwtch/cwtch.aar
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
VERSION=`cat LIBCWTCH-GO.version`
|
||||
echo $VERSION
|
||||
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-go-$VERSION/cwtch.aar --output android/cwtch/cwtch.aar
|
||||
curl --fail https://build.openprivacy.ca/files/libCwtch-go-$VERSION/libCwtch.so --output linux/libCwtch.so
|
||||
wget https://build.openprivacy.ca/files/libCwtch-go-$VERSION/cwtch.aar -O android/cwtch/cwtch.aar
|
||||
wget https://build.openprivacy.ca/files/libCwtch-go-$VERSION/libCwtch.so -O linux/libCwtch.so
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
// This is a basic Flutter integration test.
|
||||
//
|
||||
// To perform an interaction with a widget in your test, use the WidgetTester
|
||||
// utility that Flutter provides. For example, you can send tap and scroll
|
||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
||||
// tree, read text, and verify that the values of widget properties are correct.
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:integration_test/integration_test.dart';
|
||||
|
||||
import 'package:cwtch/main_test.dart' as app;
|
||||
|
||||
void main() {
|
||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
_testMain();
|
||||
}
|
||||
|
||||
void _testMain() {
|
||||
testWidgets('Blocked message rejection test', (WidgetTester tester) async {
|
||||
final String testerProfile = "mr roboto";
|
||||
final String blockedProfile = "rudey";
|
||||
|
||||
// start the app and render a few frames
|
||||
app.main();
|
||||
await tester.pump(); await tester.pump(); await tester.pump();
|
||||
//await tester.pumpAndSettle();
|
||||
|
||||
for (var i = 0; i < 30; i++) {
|
||||
print("$i pump");
|
||||
await tester.pump();
|
||||
}
|
||||
|
||||
// log in to a profile with a blocked contact
|
||||
await tester.tap(find.text(testerProfile));
|
||||
await tester.pump(); await tester.pump(); await tester.pump();
|
||||
expect(find.byIcon(Icons.block), findsOneWidget);
|
||||
|
||||
// use the debug control to inject a message from the contact
|
||||
await tester.tap(find.byIcon(Icons.bug_report));
|
||||
await tester.pump(); await tester.pump(); await tester.pump();
|
||||
|
||||
|
||||
// screenshot test
|
||||
print(Directory.current);
|
||||
//Directory.current = "/home/erinn/AndroidStudioProjects/flwtch/integration_test";
|
||||
await expectLater(find.byKey(Key('app')), matchesGoldenFile('blockedcontact.png'));
|
||||
// any active message badges?
|
||||
expect(find.text('1'), findsNothing);
|
||||
});
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -0,0 +1,411 @@
|
|||
dir-key-certificate-version 3
|
||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
||||
dir-key-published 2021-09-01 00:00:00
|
||||
dir-key-expires 2022-03-01 00:00:00
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
||||
lyS28jsPht9VAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
||||
S8iAur2GohFFAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
||||
dir-key-published 2021-08-01 20:00:02
|
||||
dir-key-expires 2022-08-01 20:00:02
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
||||
qTCMStn1jfDDAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
||||
VsB9h7YagNHJHLiGeBT1kg==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
||||
dir-key-published 2021-11-28 16:32:54
|
||||
dir-key-expires 2022-02-28 16:32:54
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
||||
ThLI/8OzZq4LAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
||||
AZHvl12tKzZF3F9MKPcNyQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
||||
dir-key-published 2021-03-29 03:27:58
|
||||
dir-key-expires 2022-03-29 03:27:58
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
||||
DNyyzRG8iP61AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
||||
60UQ0hNb6KAP+FZKPz9/dA==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
||||
dir-key-published 2021-09-06 18:42:41
|
||||
dir-key-expires 2022-09-06 18:42:41
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
||||
JHkjBCD4WTWVAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
||||
C8amqpSD8HqsCK6MvN7V9g==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
||||
dir-key-published 2021-08-21 23:12:45
|
||||
dir-key-expires 2022-08-21 23:12:45
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
||||
y7Pu7li8WyW9AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
||||
dir-key-published 2021-11-09 19:16:37
|
||||
dir-key-expires 2023-05-09 19:16:37
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
||||
7LXm/wENwn1/AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
||||
pEW/OauwlDlr3yXEKh05aQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
||||
dir-key-published 2021-09-18 16:07:20
|
||||
dir-key-expires 2022-09-18 16:07:20
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
||||
dOFYaftOkuGPAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
||||
X4d/mLOAQeYWEalQC812iw==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
dir-address 154.35.175.225:80
|
||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
||||
dir-key-published 2021-02-08 18:16:07
|
||||
dir-key-expires 2022-02-08 18:16:07
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
||||
5RDUlwZaQiaXAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
||||
ungKyPS6LTytSuU/rjWCbQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
||||
-----END SIGNATURE-----
|
44395
integration_test/env/aliceandbob1/dev/tor/data-dir-783322795/cached-microdesc-consensus
vendored
Normal file
44395
integration_test/env/aliceandbob1/dev/tor/data-dir-783322795/cached-microdesc-consensus
vendored
Normal file
File diff suppressed because it is too large
Load Diff
67608
integration_test/env/aliceandbob1/dev/tor/data-dir-783322795/cached-microdescs.new
vendored
Normal file
67608
integration_test/env/aliceandbob1/dev/tor/data-dir-783322795/cached-microdescs.new
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,58 @@
|
|||
# Tor state file last generated on 2022-02-04 13:53:23 local time
|
||||
# Other times below are in UTC
|
||||
# You *do not* need to edit this file.
|
||||
|
||||
CircuitBuildTimeBin 675 1
|
||||
CircuitBuildTimeBin 825 1
|
||||
CircuitBuildTimeBin 875 1
|
||||
CircuitBuildTimeBin 925 1
|
||||
CircuitBuildTimeBin 975 1
|
||||
CircuitBuildTimeBin 1075 1
|
||||
CircuitBuildTimeBin 1125 2
|
||||
CircuitBuildTimeBin 1175 1
|
||||
CircuitBuildTimeBin 1225 9
|
||||
CircuitBuildTimeBin 1275 21
|
||||
CircuitBuildTimeBin 1325 7
|
||||
CircuitBuildTimeBin 1375 6
|
||||
CircuitBuildTimeBin 1425 9
|
||||
CircuitBuildTimeBin 1475 2
|
||||
CircuitBuildTimeBin 1525 6
|
||||
CircuitBuildTimeBin 1575 4
|
||||
CircuitBuildTimeBin 1625 4
|
||||
CircuitBuildTimeBin 1675 13
|
||||
CircuitBuildTimeBin 1725 3
|
||||
CircuitBuildTimeBin 1775 1
|
||||
CircuitBuildTimeBin 1875 1
|
||||
CircuitBuildTimeBin 1925 1
|
||||
CircuitBuildTimeBin 1975 3
|
||||
CircuitBuildTimeBin 2025 1
|
||||
CircuitBuildTimeBin 2075 2
|
||||
CircuitBuildTimeBin 2275 1
|
||||
CircuitBuildTimeBin 2325 1
|
||||
CircuitBuildTimeBin 2575 1
|
||||
CircuitBuildTimeBin 2725 1
|
||||
CircuitBuildTimeBin 2775 2
|
||||
Dormant 0
|
||||
Guard in=default rsa_id=BD4C647508162F59CB44E4DFC1C2B2B8A9387CCA nickname=regar42 sampled_on=2022-01-27T11:01:16 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-25T23:44:41 confirmed_idx=2 pb_use_attempts=78.000000 pb_use_successes=78.000000 pb_circ_attempts=102.000000 pb_circ_successes=100.000000 pb_successful_circuits_closed=100.000000 pb_timeouts=1.000000
|
||||
Guard in=default rsa_id=AADD84AF8D3C24F492D9EC1E08360D1C7CD5730D nickname=axeTorC sampled_on=2022-01-28T04:55:37 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-04T01:41:15 confirmed_idx=0 pb_use_attempts=1.000000 pb_use_successes=1.000000 pb_circ_attempts=1.000000 pb_circ_successes=1.000000 pb_successful_circuits_closed=1.000000
|
||||
Guard in=default rsa_id=F7B8A4B5F16ECDF6CA626F96F4E3C219D1A664EC nickname=kerneloopsRelay sampled_on=2022-01-26T16:41:28 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-24T18:55:06 confirmed_idx=1
|
||||
Guard in=default rsa_id=274A1DC6210E91827CDF40DC0E95E4A3CA929A08 nickname=AllanonTor sampled_on=2022-01-26T18:56:19 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=891FB8477529A6B2894B7A3129402E0FD5DD281F nickname=hers sampled_on=2022-01-31T03:58:06 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=898B2FBA56F3707B72A0B97CC492CBB466D9D707 nickname=julianrelay sampled_on=2022-01-30T07:22:54 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=84A9473665250B752B621892834E71EECBD610FF nickname=flyingcubetech sampled_on=2022-01-24T19:47:40 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=7DFC30D7EAAEF6E74B081EC0291757E9414A8C06 nickname=TorRelay1337 sampled_on=2022-01-27T01:43:00 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=A5E42F1A3AFA948A7F2FDB1954A4CF6C6489D418 nickname=bauruine sampled_on=2022-01-31T11:16:43 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=F9AEA07ACE06E8E7D55E10FFBAE037E8C833FA93 nickname=DTFNODE46 sampled_on=2022-01-24T22:18:09 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=3910C5CA0CC5AFE22C709DF471A2B5B6B4AEDC98 nickname=criticalcat sampled_on=2022-01-25T22:53:24 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=FD449127D30D8F5D124653D9EF736EDF4A12B4DC nickname=lw sampled_on=2022-02-01T00:36:22 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=0E2EEC125A6AC8D5EBF5DB36B776A3DA5510E7A0 nickname=Nako sampled_on=2022-02-04T00:40:19 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2C7C9294CFA7AAFB3D25B72DEAED242E96927F03 nickname=ChomelesDEnetcup sampled_on=2022-01-30T05:51:02 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=916DC3199F639168CD20AEC4D45969268E807699 nickname=defcon777 sampled_on=2022-01-27T11:01:04 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=A6C3B64EC8EE20D77987EBC5E894CA6CCE4B5295 nickname=OwlRelay sampled_on=2022-01-30T19:20:11 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=6FB33CCBEF5135AFA3D6D33CE030F96728EDD70C nickname=MDMIT1 sampled_on=2022-01-31T16:49:37 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=85703987A509438D96E22AD367E99FF295E089AF nickname=gbtUSicebeer09b sampled_on=2022-02-03T22:13:49 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=BA053C72E476C1EB9D05237D0D6A289C18FBE8E7 nickname=straDEicebeer02b sampled_on=2022-01-24T08:18:24 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=225A8EA367DF3073433E0A845DDDA26D2357E4C6 nickname=Manureva sampled_on=2022-01-29T21:39:31 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
||||
LastWritten 2022-02-04 21:53:23
|
||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
||||
TotalBuildTimes 108
|
|
@ -0,0 +1,3 @@
|
|||
SocksPort 9667 OnionTrafficOnly
|
||||
ControlPort 9668
|
||||
HashedControlPassword 16:501107AD0642A3C66029D6A37845E976D5F55B4DED7C4A43CC044638A5
|
|
@ -0,0 +1,411 @@
|
|||
dir-key-certificate-version 3
|
||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
||||
dir-key-published 2021-11-09 19:16:37
|
||||
dir-key-expires 2023-05-09 19:16:37
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
||||
7LXm/wENwn1/AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
||||
pEW/OauwlDlr3yXEKh05aQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
dir-address 154.35.175.225:80
|
||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
||||
dir-key-published 2021-02-08 18:16:07
|
||||
dir-key-expires 2022-02-08 18:16:07
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
||||
5RDUlwZaQiaXAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
||||
ungKyPS6LTytSuU/rjWCbQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
||||
dir-key-published 2021-11-28 16:32:54
|
||||
dir-key-expires 2022-02-28 16:32:54
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
||||
ThLI/8OzZq4LAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
||||
AZHvl12tKzZF3F9MKPcNyQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
||||
dir-key-published 2021-09-06 18:42:41
|
||||
dir-key-expires 2022-09-06 18:42:41
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
||||
JHkjBCD4WTWVAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
||||
C8amqpSD8HqsCK6MvN7V9g==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
||||
dir-key-published 2021-03-29 03:27:58
|
||||
dir-key-expires 2022-03-29 03:27:58
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
||||
DNyyzRG8iP61AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
||||
60UQ0hNb6KAP+FZKPz9/dA==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
||||
dir-key-published 2021-09-01 00:00:00
|
||||
dir-key-expires 2022-03-01 00:00:00
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
||||
lyS28jsPht9VAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
||||
S8iAur2GohFFAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
||||
dir-key-published 2021-08-21 23:12:45
|
||||
dir-key-expires 2022-08-21 23:12:45
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
||||
y7Pu7li8WyW9AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
||||
dir-key-published 2021-08-01 20:00:02
|
||||
dir-key-expires 2022-08-01 20:00:02
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
||||
qTCMStn1jfDDAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
||||
VsB9h7YagNHJHLiGeBT1kg==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
||||
dir-key-published 2021-09-18 16:07:20
|
||||
dir-key-expires 2022-09-18 16:07:20
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
||||
dOFYaftOkuGPAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
||||
X4d/mLOAQeYWEalQC812iw==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
||||
-----END SIGNATURE-----
|
44395
integration_test/env/default/dev/tor/data-dir-605268872/cached-microdesc-consensus
vendored
Normal file
44395
integration_test/env/default/dev/tor/data-dir-605268872/cached-microdesc-consensus
vendored
Normal file
File diff suppressed because it is too large
Load Diff
67608
integration_test/env/default/dev/tor/data-dir-605268872/cached-microdescs.new
vendored
Normal file
67608
integration_test/env/default/dev/tor/data-dir-605268872/cached-microdescs.new
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,39 @@
|
|||
# Tor state file last generated on 2022-02-04 13:57:02 local time
|
||||
# Other times below are in UTC
|
||||
# You *do not* need to edit this file.
|
||||
|
||||
CircuitBuildTimeBin 875 1
|
||||
CircuitBuildTimeBin 1025 1
|
||||
CircuitBuildTimeBin 1125 1
|
||||
CircuitBuildTimeBin 1175 1
|
||||
CircuitBuildTimeBin 1275 1
|
||||
CircuitBuildTimeBin 1475 1
|
||||
CircuitBuildTimeBin 1875 1
|
||||
CircuitBuildTimeBin 1925 1
|
||||
CircuitBuildTimeBin 2025 1
|
||||
CircuitBuildTimeBin 2375 1
|
||||
Dormant 0
|
||||
Guard in=default rsa_id=D70A5E01EC14D078164D5E587608949F85FD771B nickname=leaders2 sampled_on=2022-01-30T18:34:14 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-02T06:04:33 confirmed_idx=1 pb_circ_attempts=13.000000 pb_circ_successes=10.000000 pb_successful_circuits_closed=10.000000 pb_timeouts=1.000000
|
||||
Guard in=default rsa_id=598C8E4E92D8D7750991D23F6776EE92EC1A00C1 nickname=Unnamed sampled_on=2022-02-01T01:24:07 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-29T15:09:32 confirmed_idx=2
|
||||
Guard in=default rsa_id=013ABAED8F4CDB677BE0B5212E4B2583B86035EE nickname=b0rken sampled_on=2022-01-27T22:32:07 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-03T10:23:27 confirmed_idx=0
|
||||
Guard in=default rsa_id=66DFC51E724E38DDCB3AB67DDF4C0BB0F1F49C0B nickname=Seccom04 sampled_on=2022-01-26T06:52:32 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=9400AF52EC2929DA41E6DDD3B684F23643BC316C nickname=BM03 sampled_on=2022-01-30T16:35:42 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=DD0C8EEC5CA402A9FA4478F10C31A440F71F6885 nickname=chaosDelroth sampled_on=2022-01-31T18:30:35 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=6055FE90C18DD4B2593A9D0E02DDC4D68E9BA62E nickname=elects2 sampled_on=2022-01-29T10:24:36 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=79233E8202A0EE755B39BC24BE80939C023B3FCD nickname=m83fr2 sampled_on=2022-02-01T17:58:48 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=C4BDBFD1049EE1D4F6977C42485F94CD5F97BA92 nickname=lenin sampled_on=2022-01-29T15:57:51 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=876C5AC1D2811E650AD4C78B77841C1ACB3B0088 nickname=whoUSicebeer05b sampled_on=2022-01-29T15:26:49 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=FF8B7CAD5F508972509D79F933FB24D2F524AB75 nickname=einNettesRelay sampled_on=2022-02-02T09:24:01 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=BFB14B9ADF1F19E59258CAE7FCDBAAC9937B7B10 nickname=Yggdrasil sampled_on=2022-02-02T13:42:48 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=ACBD72F9395DE8DE293D37CCF7733F1BE23EDA53 nickname=hopUSicebeer7b sampled_on=2022-02-02T18:42:20 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=F79370BA46ADC03CC10866924EE4A3C470BAFE93 nickname=skankhunt42de4 sampled_on=2022-01-25T11:00:17 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=C1939D36649DE98A202429631D8EFC70128D5F5F nickname=rinderwahnRelay10L sampled_on=2022-01-26T01:10:26 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=3BC258C20BBB8094C12DA7CB982B36D1502FAC3C nickname=Assange041us sampled_on=2022-01-31T23:57:37 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=B2242163F681F77F93190663AC5F696ACF76C4FD nickname=torexit42 sampled_on=2022-02-03T12:50:47 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=1F953ACBFB9F44CE38543B7E9C0E0BE1BDC7E941 nickname=bauruine sampled_on=2022-01-24T00:30:24 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=F00C8B7589FEE52BE84387CDB422C1F1386979C0 nickname=JennyRelay sampled_on=2022-01-30T03:59:39 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=CD39C258265B25EAA4ABA4FDCB2DF98104CAA362 nickname=normaray sampled_on=2022-01-30T09:12:11 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
||||
LastWritten 2022-02-04 21:57:02
|
||||
MinutesSinceUserActivity 3
|
||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
||||
TotalBuildTimes 10
|
|
@ -0,0 +1,3 @@
|
|||
SocksPort 9735 OnionTrafficOnly
|
||||
ControlPort 9736
|
||||
HashedControlPassword 16:178423CBFA6B25BD608424EE12A1FACF5D36FF43215636A5917F8D64DF
|
|
@ -0,0 +1,411 @@
|
|||
dir-key-certificate-version 3
|
||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
||||
dir-key-published 2021-09-01 00:00:00
|
||||
dir-key-expires 2022-03-01 00:00:00
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
||||
lyS28jsPht9VAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
||||
S8iAur2GohFFAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
||||
dir-key-published 2021-09-06 18:42:41
|
||||
dir-key-expires 2022-09-06 18:42:41
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
||||
JHkjBCD4WTWVAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
||||
C8amqpSD8HqsCK6MvN7V9g==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
||||
dir-key-published 2021-11-28 16:32:54
|
||||
dir-key-expires 2022-02-28 16:32:54
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
||||
ThLI/8OzZq4LAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
||||
AZHvl12tKzZF3F9MKPcNyQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
||||
dir-key-published 2021-08-21 23:12:45
|
||||
dir-key-expires 2022-08-21 23:12:45
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
||||
y7Pu7li8WyW9AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
||||
dir-key-published 2021-03-29 03:27:58
|
||||
dir-key-expires 2022-03-29 03:27:58
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
||||
DNyyzRG8iP61AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
||||
60UQ0hNb6KAP+FZKPz9/dA==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
||||
dir-key-published 2021-09-18 16:07:20
|
||||
dir-key-expires 2022-09-18 16:07:20
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
||||
dOFYaftOkuGPAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
||||
X4d/mLOAQeYWEalQC812iw==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
dir-address 154.35.175.225:80
|
||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
||||
dir-key-published 2021-02-08 18:16:07
|
||||
dir-key-expires 2022-02-08 18:16:07
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
||||
5RDUlwZaQiaXAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
||||
ungKyPS6LTytSuU/rjWCbQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
||||
dir-key-published 2021-08-01 20:00:02
|
||||
dir-key-expires 2022-08-01 20:00:02
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
||||
qTCMStn1jfDDAgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
||||
VsB9h7YagNHJHLiGeBT1kg==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
||||
-----END SIGNATURE-----
|
||||
dir-key-certificate-version 3
|
||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
||||
dir-key-published 2021-11-09 19:16:37
|
||||
dir-key-expires 2023-05-09 19:16:37
|
||||
dir-identity-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
||||
7LXm/wENwn1/AgMBAAE=
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-signing-key
|
||||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
||||
dir-key-crosscert
|
||||
-----BEGIN ID SIGNATURE-----
|
||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
||||
pEW/OauwlDlr3yXEKh05aQ==
|
||||
-----END ID SIGNATURE-----
|
||||
dir-key-certification
|
||||
-----BEGIN SIGNATURE-----
|
||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
||||
-----END SIGNATURE-----
|
44395
integration_test/env/persist/dev/tor/data-dir-642188460/cached-microdesc-consensus
vendored
Normal file
44395
integration_test/env/persist/dev/tor/data-dir-642188460/cached-microdesc-consensus
vendored
Normal file
File diff suppressed because it is too large
Load Diff
67608
integration_test/env/persist/dev/tor/data-dir-642188460/cached-microdescs.new
vendored
Normal file
67608
integration_test/env/persist/dev/tor/data-dir-642188460/cached-microdescs.new
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,35 @@
|
|||
# Tor state file last generated on 2022-02-04 13:58:29 local time
|
||||
# Other times below are in UTC
|
||||
# You *do not* need to edit this file.
|
||||
|
||||
CircuitBuildTimeBin 1075 1
|
||||
CircuitBuildTimeBin 1175 1
|
||||
CircuitBuildTimeBin 1325 1
|
||||
CircuitBuildTimeBin 1675 1
|
||||
CircuitBuildTimeBin 2125 2
|
||||
CircuitBuildTimeBin 2175 1
|
||||
Dormant 0
|
||||
Guard in=default rsa_id=73283C4DEBC01D3E4A5FD1BB1F2B50D927379F59 nickname=rinderwahnRelay29L sampled_on=2022-01-31T13:54:49 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-26T00:18:13 confirmed_idx=2 pb_circ_attempts=7.000000 pb_circ_successes=7.000000 pb_successful_circuits_closed=7.000000
|
||||
Guard in=default rsa_id=955F15325D6F3E3350EA8A70EB5C49C5BF95C5A0 nickname=XTOMDUS sampled_on=2022-01-31T07:54:08 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-01T08:12:17 confirmed_idx=1
|
||||
Guard in=default rsa_id=82DA9678A0BAE60087AA68A3E1D6E6A2C4246D6D nickname=Ichotolot63 sampled_on=2022-02-03T05:29:22 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-02T08:46:50 confirmed_idx=0
|
||||
Guard in=default rsa_id=77A3ADC5D455778B53C2803761916DFB7DA0A790 nickname=redvader sampled_on=2022-02-02T15:23:39 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2096BCFEBB95A1134F39FCF8CEB076FF41A2B48B nickname=freja sampled_on=2022-02-03T19:51:55 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=AE4FAE2EB5DC5D078458F0FCBF2B37F5D73F0868 nickname=sinkrlogin sampled_on=2022-01-24T19:30:40 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=680F212ADE23311C658CC560DAF80DB42FEB85DF nickname=a9 sampled_on=2022-01-28T12:54:55 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=3D5D6178C44537E3692853B344385F6572A55767 nickname=TorZabehlice sampled_on=2022-01-31T02:57:52 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=CEDB8AB22915097A3A14F63F28E1E43F86CBECC0 nickname=knight sampled_on=2022-01-26T09:02:31 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=0B555940D37DC849728841C0B290074E1A1BDCA8 nickname=TORro sampled_on=2022-01-26T04:11:45 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2A6D9EAE2FB319486C5E3BF5CC0F83F06B73CE0F nickname=clicker1 sampled_on=2022-01-28T16:27:29 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=7B3535760987464C8B5686F203B6EBE767C0873E nickname=Hydra69 sampled_on=2022-01-25T23:46:36 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=0F0F690AF1D32C7C3C72C543836625628887BA85 nickname=Hydra57 sampled_on=2022-01-24T15:26:39 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=AC2275831607A95CD8B939C3B8DC466CCF48E2B9 nickname=notsorelay sampled_on=2022-01-25T04:52:58 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=38F732DD349A2E59078434651162A2F4201934A5 nickname=mixminion sampled_on=2022-01-25T18:16:12 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2F844B6701E6C614240214489A99DF607F43C5B0 nickname=3totalrecovery3 sampled_on=2022-01-31T01:50:15 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=EBE718E1A49EE229071702964F8DB1F318075FF8 nickname=fluxe4 sampled_on=2022-01-24T07:17:01 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=8118F4C0E60C84A453ACCD1641F3A7328CBE6280 nickname=wilfong sampled_on=2022-02-01T10:05:37 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=2AA5F598F9A1812F01CD99E3B59BB87362ED7438 nickname=setsun sampled_on=2022-02-01T12:40:07 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
||||
Guard in=default rsa_id=CF6A6080091BB210AA3892FEFE2F6A396DA08DF3 nickname=cryzrelay01 sampled_on=2022-02-01T11:05:41 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
||||
LastWritten 2022-02-04 21:58:29
|
||||
MinutesSinceUserActivity 1
|
||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
||||
TotalBuildTimes 7
|
|
@ -0,0 +1,3 @@
|
|||
SocksPort 9982 OnionTrafficOnly
|
||||
ControlPort 9983
|
||||
HashedControlPassword 16:D95A03E7895DC6A2605B7AF7E28AB1E24D813742A0E86A2818C7179CE6
|
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -1,9 +1,11 @@
|
|||
@env:clean
|
||||
Feature: Splash screen displays and then closes
|
||||
Scenario: splash screen appears
|
||||
Then I expect the widget 'SplashView' to be present within 10 seconds
|
||||
Then I expect the widget 'SplashView' to be present within 1 second
|
||||
Scenario: splash screen completes
|
||||
Then I expect the widget 'ProfileManagerView' to be present within 10 seconds
|
||||
# first-run of cwtch creates expected files and folders
|
||||
Scenario: first-run of cwtch creates expected files and folders
|
||||
Given I expect the widget 'ProfileManagerView' to be present within 10 seconds
|
||||
Then I expect the folder 'integration_test/env/temp' to exist
|
||||
And I expect the folder 'integration_test/env/temp/dev' to exist
|
||||
And I expect the file 'integration_test/env/temp/dev/SALT' to exist
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
@env:persist
|
||||
Feature: Settings pane opens and can save settings persistently
|
||||
Scenario: Open the Settings pane
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the 'OpenSettingsView' button
|
||||
And I wait until the text 'Cwtch Settings' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
Then I expect the text 'Cwtch Settings' to be present
|
||||
And I take a screenshot
|
||||
|
||||
Scenario: Change every setting (except Language)
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait until the text 'Use Light Themes' is present
|
||||
And I wait for 1 second
|
||||
When I tap the widget that contains the text "Use Light Themes"
|
||||
#And I choose option 3 from the "DropdownTheme" dropdown
|
||||
#When I tap the "DropdownTheme" button
|
||||
#And I tap the first "ddi_mermaid" element
|
||||
#And I tap the element that contains the text "Mermaid"
|
||||
#And I tap the element that contains the text "Mermaid" within the "DropdownTheme"
|
||||
And I tap the widget that contains the text "Block Unknown Contacts"
|
||||
And I tap the widget that contains the text "Streamer/Presentation Mode"
|
||||
And I tap the widget that contains the text "Enable Experiments"
|
||||
Then I wait until the text 'Enable Group Chat' is present
|
||||
And I tap the widget that contains the text "Enable Group Chat"
|
||||
And I tap the widget that contains the text "Hosting Servers"
|
||||
And I tap the widget that contains the text "File Sharing"
|
||||
Then I wait until the text 'Image Previews and Profile Pictures' is present
|
||||
And I tap the widget that contains the text "Image Previews and Profile Pictures"
|
||||
And I wait until the text 'Download Folder' is present
|
||||
And I fill the "DownloadFolderPicker" field with "/this/is/a/test"
|
||||
And I tap the widget that contains the text "Enable Clickable Links"
|
||||
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
||||
|
@ -35,9 +35,8 @@ Feature: Settings pane opens and can save settings persistently
|
|||
And I expect the switch that contains the text "Enable Clickable Links" to be checked
|
||||
|
||||
Scenario: When the app is reloaded, settings from the previous scenario have persisted
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait until the text 'Use Light Themes' is present
|
||||
And I wait for 1 second
|
||||
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
||||
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
|
||||
And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
Feature: Tor initializes correctly
|
||||
Scenario: Check the Tor version
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the icon with type "TorIcon"
|
||||
Given I tap the icon with type "TorIcon"
|
||||
Then I expect the Tor version to be present
|
||||
And I expect the string 'Online' to be present within 60 seconds
|
||||
|
||||
Scenario: Reset Tor
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the icon with type "TorIcon"
|
||||
Given I tap the icon with type "TorIcon"
|
||||
Then I expect the string 'Online' to be present within 60 seconds
|
||||
Then I tap the button that contains the text "Reset"
|
||||
And I wait for 1 second
|
||||
Then I tap the button with text "Reset"
|
||||
Then I expect the text "Online" to be absent
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
Feature: Shutdown Cwtch button works correctly
|
||||
Scenario: Clicking 'Shutdown Cwtch' shuts down Cwtch
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
And I tap the button with tooltip 'Shutdown Cwtch'
|
||||
Given I tap the button with tooltip 'Shutdown Cwtch'
|
||||
Then I expect the text 'Shutdown Cwtch?' to be present
|
||||
#this also kills the testing framework sadly. will have to find a workaround
|
||||
#And I tap the button that contains the text 'Shutdown Cwtch'
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
Feature: Global 'language' setting
|
||||
Scenario: Change the language to French and back
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait until the text 'Language' is present
|
||||
And I wait for 1 second
|
||||
Then I expect the text 'Language' to be present
|
||||
And I expect the text 'Langue' to be absent
|
||||
When I tap the widget that contains the text "English"
|
||||
And I wait until the text 'French' is present
|
||||
And I tap the widget that contains the text "French"
|
||||
And I wait until the text 'Langue' is present
|
||||
And I tap the widget that contains the text "Frances"
|
||||
Then I expect the text 'Langue' to be present
|
||||
And I expect the text 'Language' to be absent
|
||||
When I tap the widget that contains the text "Français"
|
||||
And I tap the widget that contains the text "Anglais"
|
||||
And I wait until the text 'Language' is present
|
||||
Then I expect the text 'Language' to be present
|
||||
And I expect the text 'Langue' to be absent
|
|
@ -1,12 +1,10 @@
|
|||
Feature: Global 'Theme' setting
|
||||
Scenario: Change the theme to Mermaid
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
When I tap the "DropdownTheme" button
|
||||
And I tap the element that contains the text "Mermaid"
|
||||
Scenario: Change the theme to Light Mode
|
||||
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||
Given I tap the 'OpenSettingsView' button
|
||||
And I wait for 1 second
|
||||
And I tap the widget that contains the text "Theme"
|
|
@ -9,7 +9,6 @@ import 'dart:io';
|
|||
import 'package:cwtch/main.dart' as app;
|
||||
import 'package:glob/glob.dart';
|
||||
|
||||
import 'gherkin_suite_test.dart';
|
||||
import 'hooks/env.dart';
|
||||
import 'steps/chat.dart';
|
||||
import 'steps/files.dart';
|
||||
|
@ -19,11 +18,10 @@ import 'steps/text.dart';
|
|||
import 'steps/utils.dart';
|
||||
|
||||
part 'gherkin_suite_test.g.dart';
|
||||
|
||||
const REPLACED_BY_SCRIPT = <String>['integration_test/features/**.feature'];
|
||||
|
||||
@GherkinTestSuite(executionOrder: ExecutionOrder.alphabetical, featurePaths: REPLACED_BY_SCRIPT)
|
||||
void main() async {
|
||||
void main() {
|
||||
final params = [
|
||||
SwitchStateParameter(),
|
||||
];
|
||||
|
@ -58,50 +56,45 @@ void main() async {
|
|||
];
|
||||
|
||||
var sb = StringBuffer();
|
||||
sb
|
||||
..writeln("## Custom Parameters\n")
|
||||
..writeln("| name | pattern |")
|
||||
..writeln("| --- | --- |");
|
||||
sb..writeln("## Custom Parameters\n")
|
||||
..writeln("| name | pattern |")
|
||||
..writeln("| --- | --- |");
|
||||
for (var i in params) {
|
||||
sb
|
||||
..write("| ")
|
||||
..write(i.identifier)
|
||||
..write(" | ")
|
||||
..write(i.pattern.toString().replaceFirst("RegExp: pattern=", "").replaceFirst(" flags=i", "").replaceAll("|", "|"))
|
||||
..writeln(" |");
|
||||
sb..write("| ")..write(i.identifier)..write(" | ")..write(i.pattern.toString().replaceFirst("RegExp: pattern=","").replaceFirst(" flags=i","").replaceAll("|", "|"))..writeln(" |");
|
||||
}
|
||||
sb
|
||||
..writeln("\n## Custom steps\n")
|
||||
..writeln("| pattern |")
|
||||
..writeln("| --- |");
|
||||
sb..writeln("\n## Custom steps\n")
|
||||
..writeln("| pattern |")
|
||||
..writeln("| --- |");
|
||||
for (var i in steps) {
|
||||
sb.writeln(i.pattern.toString().replaceFirst("RegExp: pattern=", "| ").replaceFirst(" flags=", " |").replaceAll("|", "|"));
|
||||
}
|
||||
var f = File("integration_test/CustomSteps.md");
|
||||
f.writeAsString(sb.toString());
|
||||
|
||||
await executeTestSuite(
|
||||
configuration: FlutterTestConfiguration(
|
||||
reporters: [
|
||||
StdoutReporter(MessageLevel.verbose)
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
ProgressReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
TestRunSummaryReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
JsonReporter(),
|
||||
],
|
||||
customStepParameterDefinitions: [
|
||||
SwitchStateParameter(),
|
||||
],
|
||||
stepDefinitions: steps,
|
||||
hooks: [
|
||||
ResetCwtchEnvironment(),
|
||||
AttachScreenshotOnFailedStepHook(),
|
||||
]),
|
||||
appMainFunction: (World world) => app.main(),
|
||||
executeTestSuite(
|
||||
FlutterTestConfiguration.DEFAULT([])
|
||||
..reporters = [
|
||||
StdoutReporter(MessageLevel.error)
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
ProgressReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
TestRunSummaryReporter()
|
||||
..setWriteLineFn(print)
|
||||
..setWriteFn(print),
|
||||
JsonReporter(
|
||||
writeReport: (_, __) => Future<void>.value(),
|
||||
),
|
||||
]
|
||||
..customStepParameterDefinitions = [
|
||||
SwitchStateParameter(),
|
||||
]
|
||||
..stepDefinitions = steps
|
||||
..hooks = [
|
||||
ResetCwtchEnvironment(),
|
||||
AttachScreenshotOnFailedStepHook(),
|
||||
],
|
||||
(World world) => app.main(),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -10,7 +10,6 @@ class ResetCwtchEnvironment extends Hook {
|
|||
Future<void> onBeforeRun(TestConfiguration config) async {
|
||||
// initialize @env:persist
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||
await Process.run("cp", ["-R", "integration_test/env/persist", "integration_test/env/temp-persist"]);
|
||||
|
||||
return super.onBeforeRun(config);
|
||||
|
@ -18,10 +17,7 @@ class ResetCwtchEnvironment extends Hook {
|
|||
|
||||
@override
|
||||
Future<void> onAfterRun(TestConfiguration config) async {
|
||||
// Clean up After a Test Run...
|
||||
print("clean up environments after run...");
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||
return super.onAfterRun(config);
|
||||
}
|
||||
|
||||
|
@ -35,16 +31,18 @@ class ResetCwtchEnvironment extends Hook {
|
|||
// use the default environment if no @env: tag specified
|
||||
await Process.run("cp", ["-R", "integration_test/env/default", "integration_test/env/temp"]);
|
||||
} else {
|
||||
print("clean environment initialized");
|
||||
print("no environment initialized");
|
||||
}
|
||||
return super.onBeforeScenario(config, scenario, tags);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> onAfterScenario(TestConfiguration config, String scenario, Iterable<Tag> tags, {bool passed = true}) async {
|
||||
Future<void> onAfterScenario(TestConfiguration config, String scenario, Iterable<Tag> tags) async {
|
||||
if (tags.any((t) => t.name == "@env:persist")) {
|
||||
await Process.run("mv", ["integration_test/env/temp", "integration_test/env/temp-persist"]);
|
||||
} else {
|
||||
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||
}
|
||||
return super.onAfterScenario(config, scenario, tags);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -15,20 +15,28 @@ import 'overrides.dart';
|
|||
|
||||
StepDefinitionGeneric ExpectReply() {
|
||||
return given3<String, String, int, FlutterWorld>(
|
||||
RegExp(r'I expect to see the message {string} replying to {string} within {int} second(s)$'),
|
||||
(originalMessage, responseMessage, seconds, context) async {
|
||||
RegExp(
|
||||
r'I expect to see the message {string} replying to {string} within {int} second(s)$'),
|
||||
(originalMessage, responseMessage, seconds, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(QuotedMessageBubble, FindType.type), context.world.appDriver.findBy(originalMessage, FindType.text))) &&
|
||||
await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(QuotedMessageBubble, FindType.type), context.world.appDriver.findBy(responseMessage, FindType.text)));
|
||||
context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(QuotedMessageBubble, FindType.type),
|
||||
context.world.appDriver.findBy(originalMessage, FindType.text)
|
||||
)
|
||||
) && await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(QuotedMessageBubble, FindType.type),
|
||||
context.world.appDriver.findBy(responseMessage, FindType.text)
|
||||
));
|
||||
},
|
||||
timeout: Duration(seconds: seconds),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -4,8 +4,9 @@ import 'package:gherkin/gherkin.dart';
|
|||
|
||||
StepDefinitionGeneric FolderExists() {
|
||||
return then1<String, FlutterWorld>(
|
||||
RegExp(r'I expect the folder {string} to exist'),
|
||||
(input1, context) async {
|
||||
RegExp(
|
||||
r'I expect the folder {string} to exist'),
|
||||
(input1, context) async {
|
||||
context.expect(Directory(input1).existsSync(), true);
|
||||
},
|
||||
);
|
||||
|
@ -13,9 +14,10 @@ StepDefinitionGeneric FolderExists() {
|
|||
|
||||
StepDefinitionGeneric FileExists() {
|
||||
return then1<String, FlutterWorld>(
|
||||
RegExp(r'I expect the file {string} to exist'),
|
||||
(input1, context) async {
|
||||
RegExp(
|
||||
r'I expect the file {string} to exist'),
|
||||
(input1, context) async {
|
||||
context.expect(File(input1).existsSync(), true);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
|
@ -11,16 +11,16 @@ enum SwitchState { checked, unchecked }
|
|||
class SwitchStateParameter extends CustomParameter<SwitchState> {
|
||||
SwitchStateParameter()
|
||||
: super("toggle", RegExp(r"(checked|unchecked)", caseSensitive: false), (s) {
|
||||
switch (s.toLowerCase()) {
|
||||
case "checked":
|
||||
return SwitchState.checked;
|
||||
case "unchecked":
|
||||
return SwitchState.unchecked;
|
||||
}
|
||||
});
|
||||
switch (s.toLowerCase()) {
|
||||
case "checked":
|
||||
return SwitchState.checked;
|
||||
case "unchecked":
|
||||
return SwitchState.unchecked;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
class CheckSwitchState extends Given2WithWorld<String, SwitchState, FlutterWorld> {
|
||||
class CheckSwitchState extends Given2WithWorld<String,SwitchState,FlutterWorld> {
|
||||
@override
|
||||
Future<void> executeStep(String input1, SwitchState state) async {
|
||||
final switch1 = world.appDriver.findBy(input1, FindType.key);
|
||||
|
@ -38,8 +38,9 @@ class CheckSwitchState extends Given2WithWorld<String, SwitchState, FlutterWorld
|
|||
|
||||
StepDefinitionGeneric CheckSwitchStateWithText() {
|
||||
return then2<String, SwitchState, FlutterWorld>(
|
||||
RegExp(r'I expect the switch that contains the text {string} to be {toggle}'),
|
||||
(input1, state, context) async {
|
||||
RegExp(
|
||||
r'I expect the switch that contains the text {string} to be {toggle}'),
|
||||
(input1, state, context) async {
|
||||
final textFinder = context.world.appDriver.findBy(input1, FindType.text);
|
||||
await context.world.appDriver.scrollIntoView(textFinder);
|
||||
final switchTypeFinder = context.world.appDriver.findBy(SwitchListTile, FindType.type);
|
||||
|
@ -52,8 +53,9 @@ StepDefinitionGeneric CheckSwitchStateWithText() {
|
|||
|
||||
StepDefinitionGeneric DropdownChoose() {
|
||||
return then2<int, String, FlutterWorld>(
|
||||
RegExp(r'I choose option {int} from the {string} dropdown'),
|
||||
(idx, input1, context) async {
|
||||
RegExp(
|
||||
r'I choose option {int} from the {string} dropdown'),
|
||||
(idx, input1, context) async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
final ddFinder = context.world.appDriver.findBy(input1, FindType.key);
|
||||
await context.world.appDriver.scrollIntoView(ddFinder);
|
||||
|
@ -76,3 +78,4 @@ StepDefinitionGeneric DropdownChoose() {
|
|||
},
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,9 +30,11 @@ StepDefinitionGeneric TapWidgetWithType() {
|
|||
StepDefinitionGeneric TapWidgetWithLabel() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I tap the {string} widget with label {string}$'),
|
||||
(ofType, text, context) async {
|
||||
final finder =
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
firstMatchOnly: true);
|
||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||
//print(wdg.debugDescribeChildren().first.)
|
||||
await context.world.appDriver.scrollIntoView(finder);
|
||||
|
@ -45,9 +47,11 @@ StepDefinitionGeneric TapWidgetWithLabel() {
|
|||
StepDefinitionGeneric TapWidgetWithTooltip() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I tap the {string} widget with tooltip {string}$'),
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver
|
||||
.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.tooltip), firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.tooltip),
|
||||
firstMatchOnly: true);
|
||||
await context.world.appDriver.scrollIntoView(finder);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
@ -58,9 +62,11 @@ StepDefinitionGeneric TapWidgetWithTooltip() {
|
|||
StepDefinitionGeneric ExpectWidgetWithText() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I expect a {string} widget with text {string}$'),
|
||||
(ofType, text, context) async {
|
||||
final finder =
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
firstMatchOnly: true);
|
||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||
//print(wdg.debugDescribeChildren().first.)
|
||||
await context.world.appDriver.isPresent(finder);
|
||||
|
@ -72,9 +78,11 @@ StepDefinitionGeneric ExpectWidgetWithText() {
|
|||
StepDefinitionGeneric AbsentWidgetWithText() {
|
||||
return given2<String, String, FlutterWorld>(
|
||||
RegExp(r'I expect a {string} widget with text {string} to be absent$'),
|
||||
(ofType, text, context) async {
|
||||
final finder =
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||
(ofType, text, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
firstMatchOnly: true);
|
||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||
//print(wdg.debugDescribeChildren().first.)
|
||||
await context.world.appDriver.isAbsent(finder);
|
||||
|
@ -83,11 +91,15 @@ StepDefinitionGeneric AbsentWidgetWithText() {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
StepDefinitionGeneric TapButtonWithText() {
|
||||
return given1<String, FlutterWorld>(
|
||||
RegExp(r'I tap the {string} (?:button|element|label|icon|field|text|widget)$'),
|
||||
(input1, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(context.world.appDriver.findBy(Flwtch, FindType.type), context.world.appDriver.findBy(input1, FindType.key), firstMatchOnly: true);
|
||||
(input1, context) async {
|
||||
final finder = context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(Flwtch, FindType.type),
|
||||
context.world.appDriver.findBy(input1, FindType.key),
|
||||
firstMatchOnly: true);
|
||||
await context.world.appDriver.scrollIntoView(finder);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
@ -98,18 +110,18 @@ StepDefinitionGeneric TapButtonWithText() {
|
|||
StepDefinitionGeneric WaitUntilTypeExists() {
|
||||
return then2<String, Existence, FlutterWorld>(
|
||||
'I wait until the (?:button|element|label|icon|field|text|widget) with type {string} is {existence}',
|
||||
(ofType, existence, context) async {
|
||||
(ofType, existence, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return existence == Existence.absent
|
||||
? context.world.appDriver.isAbsent(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
)
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
)
|
||||
: context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
);
|
||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
|
@ -118,10 +130,11 @@ StepDefinitionGeneric WaitUntilTypeExists() {
|
|||
|
||||
StepDefinitionGeneric ExpectTextToBePresent() {
|
||||
return given2<String, int, FlutterWorld>(
|
||||
RegExp(r'I expect the string {string} to be present within {int} second(s)$'),
|
||||
(key, seconds, context) async {
|
||||
RegExp(
|
||||
r'I expect the string {string} to be present within {int} second(s)$'),
|
||||
(key, seconds, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return context.world.appDriver.isPresent(
|
||||
|
@ -131,85 +144,94 @@ StepDefinitionGeneric ExpectTextToBePresent() {
|
|||
timeout: Duration(seconds: seconds),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
StepDefinitionGeneric ExpectWidgetWithTextWithin() {
|
||||
return given3<String, String, int, FlutterWorld>(
|
||||
RegExp(r'I expect a {string} widget with text {string} to be present within {int} second(s)$'),
|
||||
(widgetType, text, seconds, context) async {
|
||||
await () async {
|
||||
var result = false;
|
||||
while (!result) {
|
||||
RegExp(
|
||||
r'I expect a {string} widget with text {string} to be present within {int} second(s)$'),
|
||||
(widgetType, text, seconds, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
result = await context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(widgetType), FindType.type), context.world.appDriver.findBy(text, FindType.text)),
|
||||
return context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findByDescendant(
|
||||
context.world.appDriver.findBy(widgetTypeByName(widgetType), FindType.type),
|
||||
context.world.appDriver.findBy(text, FindType.text)
|
||||
),
|
||||
);
|
||||
}
|
||||
}()
|
||||
.timeout(Duration(seconds: 120));
|
||||
},
|
||||
timeout: Duration(seconds: seconds),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
StepDefinitionGeneric WaitUntilTextExists() {
|
||||
return then2<String, Existence, FlutterWorld>(
|
||||
'I wait until the text {string} is {existence}',
|
||||
(text, existence, context) async {
|
||||
await () async {
|
||||
var result = false;
|
||||
while (!result) {
|
||||
(text, existence, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
result = await (existence == Existence.absent
|
||||
return existence == Existence.absent
|
||||
? context.world.appDriver.isAbsent(
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
)
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
)
|
||||
: context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
));
|
||||
}
|
||||
}()
|
||||
.timeout(Duration(seconds: 120));
|
||||
context.world.appDriver.findBy(text, FindType.text),
|
||||
);
|
||||
},
|
||||
timeout: Duration(seconds: 120),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
StepDefinitionGeneric WaitUntilTooltipExists() {
|
||||
return then2<String, Existence, FlutterWorld>(
|
||||
'I wait until the tooltip {string} is {existence}',
|
||||
(ofType, existence, context) async {
|
||||
(ofType, existence, context) async {
|
||||
await context.world.appDriver.waitUntil(
|
||||
() async {
|
||||
() async {
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
|
||||
return existence == Existence.absent
|
||||
? context.world.appDriver.isAbsent(
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
)
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
)
|
||||
: context.world.appDriver.isPresent(
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
);
|
||||
context.world.appDriver.findBy(ofType, FindType.tooltip),
|
||||
);
|
||||
},
|
||||
timeout: Duration(seconds: 120),
|
||||
);
|
||||
},
|
||||
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||
configuration: StepDefinitionConfiguration()
|
||||
..timeout = const Duration(days: 1),
|
||||
);
|
||||
}
|
||||
|
||||
mixin _SwipeHelper on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
||||
mixin _SwipeHelper
|
||||
on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
||||
Future<void> swipeOnFinder(
|
||||
dynamic finder,
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
) async {
|
||||
dynamic finder,
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
) async {
|
||||
if (direction == SwipeDirection.left || direction == SwipeDirection.right) {
|
||||
final offset = direction == SwipeDirection.right ? swipeAmount : (swipeAmount * -1);
|
||||
final offset =
|
||||
direction == SwipeDirection.right ? swipeAmount : (swipeAmount * -1);
|
||||
await world.appDriver.scroll(
|
||||
finder,
|
||||
dx: offset.toDouble(),
|
||||
|
@ -217,7 +239,8 @@ mixin _SwipeHelper on When4WithWorld<SwipeDirection, int, String, String, Flutte
|
|||
timeout: timeout,
|
||||
);
|
||||
} else {
|
||||
final offset = direction == SwipeDirection.up ? swipeAmount : (swipeAmount * -1);
|
||||
final offset =
|
||||
direction == SwipeDirection.up ? swipeAmount : (swipeAmount * -1);
|
||||
|
||||
await world.appDriver.scroll(
|
||||
finder,
|
||||
|
@ -228,21 +251,26 @@ mixin _SwipeHelper on When4WithWorld<SwipeDirection, int, String, String, Flutte
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SwipeOnType extends When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> with _SwipeHelper {
|
||||
class SwipeOnType
|
||||
extends When4WithWorld<SwipeDirection, int, String, String, FlutterWorld>
|
||||
with _SwipeHelper {
|
||||
@override
|
||||
Future<void> executeStep(
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
String typeOf,
|
||||
String text,
|
||||
) async {
|
||||
final finder = this.world.appDriver.findByDescendant(this.world.appDriver.findBy(widgetTypeByName(typeOf), FindType.type), this.world.appDriver.findBy(text, FindType.text));
|
||||
SwipeDirection direction,
|
||||
int swipeAmount,
|
||||
String typeOf,
|
||||
String text,
|
||||
) async {
|
||||
final finder = this.world.appDriver.findByDescendant(
|
||||
this.world.appDriver.findBy(widgetTypeByName(typeOf), FindType.type),
|
||||
this.world.appDriver.findBy(text, FindType.text)
|
||||
);
|
||||
await swipeOnFinder(finder, direction, swipeAmount);
|
||||
}
|
||||
|
||||
@override
|
||||
RegExp get pattern => RegExp(r'I swipe {swipe_direction} by {int} pixels on the widget of type {string} with text {string}');
|
||||
RegExp get pattern => RegExp(
|
||||
r'I swipe {swipe_direction} by {int} pixels on the widget of type {string} with text {string}');
|
||||
}
|
||||
|
||||
Type widgetTypeByName(String input1) {
|
||||
|
@ -256,12 +284,12 @@ Type widgetTypeByName(String input1) {
|
|||
case "TorIcon":
|
||||
return TorIcon;
|
||||
case "button":
|
||||
return ElevatedButton;
|
||||
return ElevatedButton;
|
||||
case "IconButton":
|
||||
return IconButton;
|
||||
case "ProfileRow":
|
||||
return ProfileRow;
|
||||
return ProfileRow;
|
||||
default:
|
||||
throw ("Unknown type $input1. add to integration_test/features/overrides.dart");
|
||||
throw("Unknown type $input1. add to integration_test/features/overrides.dart");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,44 +4,46 @@ import 'package:flutter_gherkin/flutter_gherkin.dart';
|
|||
import 'package:gherkin/gherkin.dart';
|
||||
|
||||
StepDefinitionGeneric TooltipTap() {
|
||||
return given1<String, FlutterWorld>(RegExp(r'I tap the button with tooltip {string}'), (input1, context) async {
|
||||
final finder = context.world.appDriver.findBy(input1, FindType.tooltip);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
});
|
||||
return given1<String, FlutterWorld>(
|
||||
RegExp(r'I tap the button with tooltip {string}'),
|
||||
(input1, context) async {
|
||||
final finder = context.world.appDriver.findBy(input1, FindType.tooltip);
|
||||
await context.world.appDriver.tap(finder);
|
||||
await context.world.appDriver.waitForAppToSettle();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
StepDefinitionGeneric TorVersionPresent() {
|
||||
return given<FlutterWorld>(
|
||||
RegExp(r'I expect the Tor version to be present$'),
|
||||
(context) async {
|
||||
String versionString = "";
|
||||
final file = File('fetch-tor.sh');
|
||||
Stream<String> lines = file.openRead().transform(utf8.decoder).transform(LineSplitter());
|
||||
try {
|
||||
await for (var line in lines) {
|
||||
if (line.startsWith("wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-")) {
|
||||
versionString = line.substring(81, 88);
|
||||
break;
|
||||
(context) async {
|
||||
String versionString = "";
|
||||
final file = File('fetch-tor.sh');
|
||||
Stream<String> lines = file.openRead()
|
||||
.transform(utf8.decoder)
|
||||
.transform(LineSplitter());
|
||||
try {
|
||||
await for (var line in lines) {
|
||||
if (line.startsWith("wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-")) {
|
||||
versionString = line.substring(81, 88);
|
||||
break;
|
||||
}
|
||||
}
|
||||
print('File is now closed.');
|
||||
} catch (e) {
|
||||
print('Error: $e');
|
||||
}
|
||||
}
|
||||
print('File is now closed.');
|
||||
} catch (e) {
|
||||
print('Error: $e');
|
||||
}
|
||||
if (versionString == "") {
|
||||
context.expect(versionString, "#.#.#", reason: "error reading version string from fetch-tor.sh");
|
||||
return;
|
||||
}
|
||||
context.world.attach(versionString, "text/plain", "Then I expect the Tor version to be present");
|
||||
//context.reporter.message("test!!!", MessageLevel.info);
|
||||
print("looking for version string $versionString");
|
||||
final finder = context.world.appDriver.findBy(
|
||||
versionString,
|
||||
FindType.text,
|
||||
);
|
||||
final isP = await context.world.appDriver.isPresent(finder);
|
||||
context.expect(isP, true);
|
||||
if (versionString == "") {
|
||||
context.expect(versionString, "#.#.#", reason: "error reading version string from fetch-tor.sh");
|
||||
return;
|
||||
}
|
||||
context.world.attach(versionString, "text/plain", "Then I expect the Tor version to be present");
|
||||
context.reporter.message("test!!!", MessageLevel.info);
|
||||
print("looking for version string $versionString");
|
||||
final finder = context.world.appDriver.findBy(versionString, FindType.text,);
|
||||
final isP = await context.world.appDriver.isPresent(finder);
|
||||
context.expect(isP, true);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
|
@ -4,16 +4,14 @@ import 'package:gherkin/gherkin.dart';
|
|||
|
||||
StepDefinitionGeneric TakeScreenshot() {
|
||||
return then<FlutterWorld>(
|
||||
RegExp(r'I take a screenshot'),
|
||||
(context) async {
|
||||
RegExp(
|
||||
r'I take a screenshot'),
|
||||
(context) async {
|
||||
try {
|
||||
final bytes = await context.world.appDriver.screenshot();
|
||||
final screenshotData = base64Encode(bytes);
|
||||
print("EMBEDDING SCREENSHOT....");
|
||||
print("$screenshotData");
|
||||
context.world.attach(screenshotData, 'image/png', 'And I take a screenshot');
|
||||
} catch (e, st) {
|
||||
print("FAILED TO EMBED??? $e $st");
|
||||
context.world.attach('Failed to take screenshot\n$e\n$st', 'text/plain');
|
||||
}
|
||||
},
|
||||
|
|
|
@ -782,11 +782,10 @@ class CwtchFfi implements Cwtch {
|
|||
|
||||
@override
|
||||
String? defaultDownloadPath() {
|
||||
|
||||
Map<String, String> envVars = Platform.environment;
|
||||
String nominalPath = path.join(envVars[Platform.isWindows ? 'UserProfile' : 'HOME']!, "Downloads");
|
||||
if (Directory(nominalPath).existsSync() == false) {
|
||||
return Directory.current.path;
|
||||
return null;
|
||||
}
|
||||
return nominalPath;
|
||||
}
|
||||
|
|
|
@ -1,366 +0,0 @@
|
|||
{
|
||||
"@@locale": "sk",
|
||||
"@@last_modified": "2023-05-0T21:06:07+01:00",
|
||||
"profileEnabledDescription": "Spustiť alebo zastaviť profil",
|
||||
"profileAutostartDescription": "Ovláda či bude profil automaticky spustený pri štarte",
|
||||
"profileEnabled": "Povoliť",
|
||||
"profileAutostartLabel": "Spúšťať spoločne zo systémom",
|
||||
"localePtBr": "Brazílska Portugalčina \/ Português do Brasil",
|
||||
"localeNl": "Holandsky \/ Dutch",
|
||||
"experimentQRCodeDescription": "QR Kód podpora povoluje zdielanie dát (ako na príklad identitu profilu) pomocou QR Kódou",
|
||||
"enableExperimentQRCode": "QR Kódy",
|
||||
"shareMenuQRCode": "Ukázať QR Kód",
|
||||
"shareProfileMenuTooltop": "Zdielať profil skrz...",
|
||||
"acquiredTicketsFromServer": "Antispam Challenge Dokončená",
|
||||
"acquiringTicketsFromServer": "Vykonávam Antispam Challenge",
|
||||
"errorDownloadDirectoryDoesNotExist": "Zdielanie súborov nemôže byť povolené pretože zložka Stiahnuté nebola vybraná, alebo ukazuje na neexistujúcu zložku.",
|
||||
"localeIt": "Taliansky \/ Italiano",
|
||||
"localeTr": "Turecky \/ Türk",
|
||||
"tooltipUnpinConversation": "Unpinnúť konverzáciu z vrchu \"Konverzácií\"",
|
||||
"tooltipPinConversation": "Pinnúť konverzáciu na vrchol\"Konverzácií\"",
|
||||
"replyingTo": "Odpovedá %1",
|
||||
"fileDownloadUnavailable": "Zdá sa že súbor je nedostupný. Odosielateľ mohol vypnúť sťahovanie pre tento súbor.",
|
||||
"messageNoReplies": "Pre túto správu sa nenašli žiadne odpovede.",
|
||||
"headingReplies": "Odpovede",
|
||||
"viewReplies": "Zobraziť odpovede pre túto správu",
|
||||
"restartFileShare": "Začať Zdielať Súbor",
|
||||
"stopSharingFile": "Zastaviť Zdielanie Súboru",
|
||||
"manageSharedFiles": "Spravovať Zdielané Súbory",
|
||||
"localeDe": "Nemecky \/ Deutsch",
|
||||
"localeEn": "Anglicky \/ English",
|
||||
"localeLb": "Luxembursky \/ Lëtzebuergesch",
|
||||
"localeNo": "Nórsky \/ Norsk",
|
||||
"localeEl": "Grécky\/ Ελληνικά",
|
||||
"localePl": "Polsky \/ Polski",
|
||||
"localeRo": "Rumunsky \/ Română",
|
||||
"localeRU": "Rusky \/ Русский",
|
||||
"localeEs": "Španielsky \/ Español",
|
||||
"localeDa": "Dánsky \/ Dansk",
|
||||
"localePt": "Portugalsky \/ Portuguesa",
|
||||
"localeFr": "Francúzsky \/ Français",
|
||||
"localeCy": "Velšsky \/ Cymraeg",
|
||||
"settingImagePreviewsDescription": "Obrázky a profilovky budú sťahované a zobrazované automaticky. Odporúčame aby ste tento experiment nezapínali v prípade že používate Cwtch s kontaktmi ktorým nedôverujete.",
|
||||
"tooltipPreviewFormatting": "Zobrazovať Formátovanie Správy v Reálnom Čase",
|
||||
"tooltipCode": "Kód \/ Monospace",
|
||||
"tooltipStrikethrough": "Prečiarknuté",
|
||||
"tooltipSubscript": "Index",
|
||||
"tooltipSuperscript": "Horný index",
|
||||
"tooltipItalicize": "Naklonené písmo",
|
||||
"tooltipBackToMessageEditing": "Späť k Editovaniu Správy",
|
||||
"tooltipBoldText": "Hrubé písmo",
|
||||
"okButton": "OK",
|
||||
"settingsAndroidPowerReenablePopup": "Nedokážem vrátiť Optimalizáciu Batérie do pôvodného stavu skrz Cwtch. Prosím choďte do Android \/ Nastavenia \/ Aplikácie\/ Cwtch \/ Batéria a nastavte Využitie na 'Optimalizovať'",
|
||||
"settingAndroidPowerExemptionDescription": "Dobrovoľné: Požiadať Android o neoptimalizovanie energie pre Cwtch. Bude to mať za následok vyššiu spotrebu batérie.",
|
||||
"settingAndroidPowerExemption": "Ignorovanie Optimalizácie Batérie pre Android"
|
||||
"thisFeatureRequiresGroupExpermientsToBeEnabled": "Táto funkcia vyžaduje aby Experiment Skupiny bol povolený v Nastaveniach",
|
||||
"messageFormattingDescription": "Povoliť rozšírené formátovanie textu v zobrazovaných správach. Na príklad: **hrubé** a *naklonené písmo*",
|
||||
"formattingExperiment": "Formátovanie Správy",
|
||||
"clickableLinkError": "Chyba pri otváraní linku" ,
|
||||
"clickableLinksWarning": "Otvorením tohoto linku sa spustí aplikácia mimo Cwtch, ktorá môže odhaliť metadáta alebo iným spôsobom ohroziť bezpečnosť Cwtch. Otvárajte linky iba od ľudí ktorým veríte. Ste si istý že chcete pokračovať?",
|
||||
"clickableLinksCopy": "Kopírovať link",
|
||||
"clickableLinkOpen": "Otvoriť link",
|
||||
"shuttingDownApp": "Vypínam...",
|
||||
"successfullyImportedProfile": "Úspešne Importovaný Profil: %profile",
|
||||
"failedToImportProfile": "Chyba Pri Importovaní Profilu",
|
||||
"importProfileTooltip": "Použiť šifrovanú Cwtch zálohu pre importovanie profilu vytvoreného na inej instancii Cwtch.",
|
||||
"importProfile": "Importovať Profil",
|
||||
"exportProfileTooltip": "Zálohovať tento profil do šifrovaného súboru. Tento šifrovaný profil môže byť importovaný do inej Cwtch instancie.",
|
||||
"exportProfile": "Exportovať Profil",
|
||||
"conversationNotificationPolicySettingDescription": "Ovládať správanie notifikácií pre túto konverzáciu",
|
||||
"newMessageNotificationConversationInfo": "Nová Správa Od %1",
|
||||
"newMessageNotificationSimple": "Nová Správa",
|
||||
"notificationContentContactInfo": "Informácie o Konverzácii",
|
||||
"notificationContentSimpleEvent": "Obyčajná Udalosť",
|
||||
"conversationNotificationPolicySettingLabel": "Pravidlá pre notifikácie konverzácií",
|
||||
"settingsGroupExperiments": "Experimenty",
|
||||
"settingsGroupAppearance": "Vzhľad",
|
||||
"settingGroupBehaviour": "Správanie",
|
||||
"notificationContentSettingDescription": "Ovláda obsah notifikácií konverzácie",
|
||||
"notificationPolicySettingDescription": "Ovláda predvolené správanie notifikácií aplikácie",
|
||||
"notificationContentSettingLabel": "Obsah notifikácií",
|
||||
"notificationPolicySettingLabel": "Pravidlá pre notifikácie",
|
||||
"conversationNotificationPolicyNever": "Nikdy",
|
||||
"conversationNotificationPolicyOptIn": "Opt In",
|
||||
"conversationNotificationPolicyDefault": "Predvolené",
|
||||
"notificationPolicyDefaultAll": "Vrátiť Všetko na Predvolené",
|
||||
"notificationPolicyOptIn": "Opt In",
|
||||
"notificationPolicyMute": "Stlmiť konverzáciu",
|
||||
"tooltipSelectACustomProfileImage": "Vybrať Vlastnú Profilovú Fotku",
|
||||
"editProfile": "Upraviť Profil",
|
||||
"torSettingsEnabledCacheDescription": "Ukladať aktuálny Tor consensus pre opätovné využitie pri ďalšom otvorení Cwtch. Toto umožní Toru spúštať sa rýchlejšie. Ak je toto nastavenie vypnuté, Cwtch sa zbaví uložených dát pri každom štarte.",
|
||||
"torSettingsEnableCache": "Ukladať Tor Consensus",
|
||||
"labelTorNetwork": "Sieť Tor",
|
||||
"descriptionACNCircuitInfo": "Detailné informácie o ceste ktorú využíva anonymná komunikačná sieť cez ktorú ste pripojený k tejto konverzácii.",
|
||||
"labelACNCircuitInfo": "Informácie o ACN Circuit",
|
||||
"fileSharingSettingsDownloadFolderTooltip": "Vybrať inú predvolenú zložku pre stiahnuté súbory.",
|
||||
"fileSharingSettingsDownloadFolderDescription": "Keď sú súbory sťahované automaticky (Na príklad: obrázky, ktorých náhľady sú povolené), je potrebná predvolená zložka pre ich Stiahnutie.",
|
||||
"torSettingsErrorSettingPort": "Číslo Portu musí byť medzi 1 a 65535",
|
||||
"settingTheme": "Použiť Svetlý Režim", "torSettingsUseCustomTorServiceConfiguration": "Použiť vlastnú Konfiguráciu Služby Tor (torrc)",
|
||||
"torSettingsUseCustomTorServiceConfigurastionDescription": "Prepísať predvolenú tor konfiguráciu. Pozor: Tento úkon môže byť nebezpečný. Zapnite toto nastavenie iba ak viete čo robíte.",
|
||||
"torSettingsCustomControlPortDescription": "Použiť vlastný port pre ovládanie pripojení k Tor proxy",
|
||||
"torSettingsCustomControlPort": "Iný Control Port",
|
||||
"torSettingsCustomSocksPortDescription": "Použiť iný port pre dátové pripojenia k Tor proxy",
|
||||
"torSettingsCustomSocksPort": "Vlastný SOCKS Port",
|
||||
"torSettingsEnabledAdvancedDescription": "Použiť Tor službu na vašom systéme, alebo zmeniť parametre Cwtch Tor Služby",
|
||||
"torSettingsEnabledAdvanced": "Povoliť Rozšírenú Konfiguráciu Tor",
|
||||
"msgAddToAccept": "Pridajte užívatela do kontaktov aby ste mohli prijať tento súbor.",
|
||||
"btnSendFile": "Odoslať Súbor",
|
||||
"msgConfirmSend": "Ste si istý že chcete poslať",
|
||||
"msgFileTooBig": "Veľkosť súboru nemôže presiahnuť 10 GB",
|
||||
"storageMigrationModalMessage": "Prenášam profily do nového formátu. Môže to potrvať niekoľko minút...",
|
||||
"loadingCwtch": "Načítavam Cwtch...",
|
||||
"themeColorLabel": "Farebný Motív",
|
||||
"themeNameNeon2": "Neón2",
|
||||
"themeNameNeon1": "Neón1",
|
||||
"themeNameMidnight": "Polnoc",
|
||||
"themeNameMermaid": "Morská víla",
|
||||
"themeNamePumpkin": "Tekvica",
|
||||
"themeNameGhost": "Duch",
|
||||
"themeNameVampire": "Upír",
|
||||
"themeNameWitch": "Čarodejnica",
|
||||
"themeNameCwtch": "Cwtch",
|
||||
"settingDownloadFolder": "Zložka Stiahnuté",
|
||||
"settingImagePreviews": "Náhľady Obrázkou a Profilové Obrázky",
|
||||
"experimentClickableLinksDescription": "Experiment kliknutie na linky vám dovoluje kliknúť na link zdielaný v správach",
|
||||
"enableExperimentClickableLinks": "Povoliť Kliknutie na Linky",
|
||||
"serverConnectionsLabel": "Spojenie",
|
||||
"serverTotalMessagesLabel": "Všetky Správy",
|
||||
"serverMetricsLabel": "Štatistiky Serveru",
|
||||
"manageKnownServersShort": "Servery",
|
||||
"manageKnownServersLong": "Spravovať Známe Servery",
|
||||
"displayNameTooltip": "Prosím zadajte zobrazované meno",
|
||||
"manageKnownServersButton": "Spravovať Známe Servery",
|
||||
"fieldDescriptionLabel": "Popis",
|
||||
"groupsOnThisServerLabel": "Skupiny ktorých som členom a sú hostované na tomto servery",
|
||||
"importLocalServerButton": "Importovať %1",
|
||||
"importLocalServerSelectText": "Zvoliť Lokálny Server",
|
||||
"importLocalServerLabel": "Importovať lokálne hostovaný server",
|
||||
"savePeerHistoryDescription": "Určuje či vymazať všetku históriu spojenú s kontaktom",
|
||||
"newMessagesLabel": "Nové správy",
|
||||
"copyServerKeys": "Kopírovať klúče",
|
||||
"verfiyResumeButton": "Overiť\/Pokračovať",
|
||||
"fileCheckingStatus": "Kontrolujem stav sťahovania",
|
||||
"fileInterrupted": "Prerušené",
|
||||
"fileSavedTo": "Uložené do",
|
||||
"plainServerDescription": "Odporúčame aby ste si ochránili Cwtch servery heslom. Ak si na servery nenastavíte heslo, každý s prístupom k tomuto zariadeniu bude schopný vidieť informácie o danom servry, vrátane citlivých kryptografických klúčov.",
|
||||
"encryptedServerDescription": "Šifrovanie serveru heslom ho chráni pred ostatnými ľuďmi ktorý by mohli toto zariadenie využívať taktiež. Šifrované servery sa nedajú odšifrovať, zobraziť alebo sprístupniť pokiaľ nie je zadané správne heslo.",
|
||||
"deleteServerConfirmBtn": "Vážne vymazať server?",
|
||||
"deleteServerSuccess": "Server bol úspešne vymazaný",
|
||||
"enterCurrentPasswordForDeleteServer": "Prosím zadajte aktuálne heslo pre zmazanie tohoto serveru",
|
||||
"copyAddress": "Kopírovať Adresu",
|
||||
"settingServersDescription": "Experiment hostovanie serverov povoluje hostovanie a správu Cwtch serverov",
|
||||
"settingServers": "Hostujúce Servery",
|
||||
"enterServerPassword": "Zadajte heslo pre odomknutie serveru",
|
||||
"unlockProfileTip": "Na začiatok si prosím vytvorte alebo odomknite profil!",
|
||||
"unlockServerTip": "Prosím vytvorte alebo odomknite server pre začatie!",
|
||||
"addServerTooltip": "Pridať nový server",
|
||||
"serversManagerTitleShort": "Servery",
|
||||
"serversManagerTitleLong": "Servery Ktoré Hostujete",
|
||||
"saveServerButton": "Uložiť Server",
|
||||
"serverAutostartDescription": "Ovláda či aplikácia automaticky spustí server pri štarte",
|
||||
"serverAutostartLabel": "Automaticky spúštať",
|
||||
"serverEnabledDescription": "Spustiť alebo zastaviť server",
|
||||
"serverEnabled": "Server Povolený",
|
||||
"serverDescriptionDescription": "Váš lokálny popis tohoto servera. Nebude nikde zdielaný.",
|
||||
"serverDescriptionLabel": "Popis Servera",
|
||||
"serverAddress": "Adresa Servera",
|
||||
"editServerTitle": "Upraviť Server",
|
||||
"addServerTitle": "Pridať Server",
|
||||
"titleManageProfilesShort": "Profily",
|
||||
"descriptionStreamerMode": "Po zapnutí toto nastavenie urobí aplikáciu vizuálne súkromejšou. Na príklad: zakrije niektoré položky, ako profil a adresy kontaktov ",
|
||||
"descriptionFileSharing": "Experiment zdielanie súborov vám umožňuje odosielať a príjmať súbory od Cwtch kontaktov a skupín. Majte na pamäti že zdielanie súboru zo skupinou znamená priame spojenie s členmy skupiny, aby súbor mohli stiahnuť.",
|
||||
"settingFileSharing": "Zdielanie Súborov",
|
||||
"tooltipSendFile": "Poslať Súbor",
|
||||
"messageFileOffered": "Kontakt vám chce poslať súbor",
|
||||
"messageFileSent": "Poslali ste súbor",
|
||||
"messageEnableFileSharing": "Povolte experiment zdielanie súborov pre zobrazenie tejto správy.",
|
||||
"labelFilesize": "Veľkosť",
|
||||
"labelFilename": "Meno súboru",
|
||||
"downloadFileButton": "Stiahnuť",
|
||||
"openFolderButton": "Otvoriť Zložku",
|
||||
"retrievingManifestMessage": "Získavam informácie o súbore...",
|
||||
"streamerModeLabel": "Streamer\/Prezentačný Mód",
|
||||
"archiveConversation": "Archivovať túto konverzáciu",
|
||||
"profileOnionLabel": "Poslať túto adresu ľuďom s ktorými sa chcete spojiť",
|
||||
"addPeerTab": "Pridať kontakt",
|
||||
"addPeer": "Pridať Kontakt",
|
||||
"peerNotOnline": "Kontakt je offline. Aplikácie nemôžu byť momentálne použité.",
|
||||
"peerBlockedMessage": "Kontakt je zablokovaný",
|
||||
"peerOfflineMessage": "Kontakt je offline. Správý nemôžu byť doručené",
|
||||
"blockBtn": "Zablokovať Kontakt",
|
||||
"savePeerHistory": "Uložiť Históriu",
|
||||
"dontSavePeerHistory": "Vymazať Históriu",
|
||||
"unblockBtn": "Odblokovať Kontakt",
|
||||
"blockUnknownLabel": "Zablokovať Neznáme Kontakty",
|
||||
"blockUnknownConnectionsEnabledDescription": "Spojenia od neznámich kontaktov sú zablokované. Môžete to zmeniť v nastaveniach",
|
||||
"networkStatusConnecting": "Pripájam sa k sieti a kontaktom...",
|
||||
"showMessageButton": "Ukázať Správu",
|
||||
"blockedMessageMessage": "Táto správa je od profilu ktorý ste zablokovali.",
|
||||
"placeholderEnterMessage": "Napísať správu...",
|
||||
"plainProfileDescription": "Odporúčame aby ste si ochránili Cwtch profily heslom. Ak si na profile nenastavíte heslo, každý s prístupom k tomuto zariadeniu bude schopný vidieť informácie o danom profile, jeho kontakty, odoslané správy a citlivé kryptografické klúče.",
|
||||
"encryptedProfileDescription": "Šifrovanie profilu heslom ho chráni pred ostatnými ľuďmi ktorí by mohli taktiež používať toto zariadenie. Šifrované profily nemôžu byť dešífrované, zobrazené alebo sprístupnené pokiaľ nie je zadané správne heslo.",
|
||||
"addContactConfirm": "Pridať kontakt %1",
|
||||
"addContact": "Pridať kontakt",
|
||||
"contactGoto": "Prejsť ku konverzácii s %1",
|
||||
"settingUIColumnOptionSame": "Rovnaké ako nastavenie portrétového režimu",
|
||||
"settingUIColumnDouble14Ratio": "Dvojité (1:4)",
|
||||
"settingUIColumnDouble12Ratio": "Dvojité(1:2)",
|
||||
"settingUIColumnSingle": "Jeden",
|
||||
"settingUIColumnLandscape": "UI Stĺpiky v Móde na Šírku",
|
||||
"settingUIColumnPortrait": "UI Stĺpiky v Režime na Výšku",
|
||||
"tooltipRemoveThisQuotedMessage": "Odstrániť citovanú správu",
|
||||
"tooltipReplyToThisMessage": "Odpovedať na túto správu",
|
||||
"tooltipRejectContactRequest": "Odmietnuť túto žiadosť o kontakt",
|
||||
"tooltipAcceptContactRequest": "Príjmuť túto žiadosť o kontakt.",
|
||||
"notificationNewMessageFromGroup": "Nová správa v skupine!",
|
||||
"notificationNewMessageFromPeer": "Nová správa od kontaktu!",
|
||||
"tooltipHidePassword": "Skryť Heslo",
|
||||
"tooltipShowPassword": "Zobraziť Heslo",
|
||||
"serverNotSynced": "Synchronizujem nové správy (Môže to chvíľu trvať)...",
|
||||
"groupInviteSettingsWarning": "Boli ste pozvaný do skupiny! Prosím povolte Experiment Skupinový Chat v Nastaveniach pre zobrazenie tejto Pozvánky.",
|
||||
"shutdownCwtchAction": "Vypnúť Cwtch",
|
||||
"shutdownCwtchDialog": "Ste si istý že chcete vypnúť Cwtch? Všetky spojenia budú ukončené a aplikácia sa zatvory.",
|
||||
"shutdownCwtchDialogTitle": "Vypnúť Cwtch?",
|
||||
"shutdownCwtchTooltip": "Vypnúť Cwtch",
|
||||
"malformedMessage": "Poškodená správa",
|
||||
"profileDeleteSuccess": "Profil bol úspešne vymazaný",
|
||||
"debugLog": "Zapnúť console debug logging",
|
||||
"torNetworkStatus": "Status siete Tor",
|
||||
"addContactFirst": "Pridaje alebo vyberte kontakt pre začatie chatu.",
|
||||
"createProfileToBegin": "Prosím vytvorte alebo odomknite profil",
|
||||
"nickChangeSuccess": "Meno profilu úspešne zmenené",
|
||||
"addServerFirst": "Musíte pridať server pred tým ako môžete vytvoriť skupinu",
|
||||
"deleteProfileSuccess": "Profil úspešne vymazaný",
|
||||
"sendInvite": "Poslať kontakt alebo skupinovú pozvánku",
|
||||
"sendMessage": "Poslať Správu",
|
||||
"cancel": "Zrušiť",
|
||||
"resetTor": "Resetovať",
|
||||
"torStatus": "Tor Status",
|
||||
"torVersion": "Tor Verzia",
|
||||
"sendAnInvitation": "Poslali ste pozvánku k: ",
|
||||
"contactSuggestion": "Toto je návrh kontantu pre:",
|
||||
"rejected": "Zamietnuté!",
|
||||
"accepted": "Akceptované!",
|
||||
"chatHistoryDefault": "Táto konverzácia bude vymazaná po zavretí Cwtch! História správ môže byť povolená pre každý kontakt zvlášť v menu Nastavení v pravom hornom rohu.",
|
||||
"newPassword": "Nové Heslo",
|
||||
"yesLeave": "Áno, Opustiť Túto Konverzáciu",
|
||||
"reallyLeaveThisGroupPrompt": "Ste si istý že chcete opustiť túto konverzáciu? Všetky správy a atribúty budú vymazané.",
|
||||
"leaveConversation": "Opustiť Túto Konverzáciu",
|
||||
"inviteToGroup": "Boli ste pozvaný do skupiny:",
|
||||
"pasteAddressToAddContact": "Paste a cwtch address, invitation or key bundle here to add a new conversation Vložte cwtch adresu, pozvánku alebo key bundle pre pridanie novej konverzácie",
|
||||
"tooltipAddContact": "Pridať nový kontakt alebo konverzáciu",
|
||||
"titleManageContacts": "Konverzácie",
|
||||
"titleManageServers": "Spravovať Servery",
|
||||
"successfullAddedContact": "Úspešne pridané",
|
||||
"descriptionBlockUnknownConnections": "Ak zapnuté, toto nastavenie automaticky zavrie spojenia od Cwtch užívateľov ktorých ste nepridali do listu kontaktov.",
|
||||
"descriptionExperimentsGroups": "Experiment skupiny umožnuje Cwtch spojenie s nedôveryhodnou severovou infraštruktúrou aby mohol naviazať spojenie s viac ako jedným kontaktom.",
|
||||
"descriptionExperiments": "Cwtch experimenty sú dobrovoľné, opt-in funkcie ktoré pridávajú Cwtch funkcionalitu pri ktorej nie je súkromie na prvom mieste, tak ako u 1:1 metadátam odolných chatou. Na príklad: skupinový chat, integrácia botou, atď.",
|
||||
"titleManageProfiles": "Spravovať Cwtch Profily",
|
||||
"tooltipUnlockProfiles": "Otvoriť šifrované profily zadaním ich hesla",
|
||||
"tooltipOpenSettings": "Otvoriť panel nastavení",
|
||||
"invalidImportString": "Nesprávna adresa",
|
||||
"contactAlreadyExists": "Kontakt Už Existuje",
|
||||
"conversationSettings": " Nastavenia Konverzácie",
|
||||
"enterCurrentPasswordForDelete": "Prosím zadajte heslo pre vymazanie profilu.",
|
||||
"enableGroups": "Povoliť Skupinový Chat",
|
||||
"experimentsEnabled": "Povoliť Experimenty",
|
||||
"addListItem": "Pridať novú položku",
|
||||
"addNewItem": "Pridať novú položku do zoznamu",
|
||||
"todoPlaceholder": "Urobiť neskôr...",
|
||||
"newConnectionPaneTitle": "Nové Spojenie",
|
||||
"networkStatusOnline": "Online",
|
||||
"networkStatusAttemptingTor": "Pokúšam sa spojiť s Tor sieťou",
|
||||
"networkStatusDisconnected": "Žiadny prístup na internet, skontrolujte vaše spojenie.",
|
||||
"viewGroupMembershipTooltip": "Zobraziť Členstvo v Skupine",
|
||||
"loadingTor": "Načítavam tor...",
|
||||
"smallTextLabel": "Malé",
|
||||
"defaultScalingText": "Predvolená veľkosť textu (mierka):",
|
||||
"builddate": "Vyrobené: %2",
|
||||
"version": "Verzia %1",
|
||||
"versionTor": "Verzia %1 s tor %2",
|
||||
"themeDark": "Tmavá",
|
||||
"themeLight": "Svetlá",
|
||||
"largeTextLabel": "Veľké",
|
||||
"settingInterfaceZoom": " Úroveň priblíženia",
|
||||
"settingLanguage": "Jazyk",
|
||||
"zoomLabel": "Priblíženie užívateľského prostredia (ovplyvňuje hlavne veľkosť textu a tlačidiel)",
|
||||
"versionBuilddate": "Verzia: %1 Vyrobené: %2",
|
||||
"cwtchSettingsTitle": "Cwtch Nastavenia",
|
||||
"unlock": "Odomknúť",
|
||||
"yourServers": "Vaše Servery",
|
||||
"yourProfiles": "Vaše Profily",
|
||||
"error0ProfilesLoadedForPassword": "0 načítaných profilov s tým heslom",
|
||||
"password": "Heslo",
|
||||
"enterProfilePassword": "Zadajte heslo k zobrazeniu vašich profilov",
|
||||
"addNewProfileBtn": "Pridať nový profil",
|
||||
"deleteConfirmText": "VYMAZAT",
|
||||
"deleteProfileConfirmBtn": "Skutočne Vymazať Profil",
|
||||
"deleteConfirmLabel": "Napíšte VYMAZAT pre potvrdenie",
|
||||
"deleteProfileBtn": "Vymazať Profil",
|
||||
"passwordChangeError": "Chyba pri zmene hesla: Vložené heslo bolo odmietnuté",
|
||||
"passwordErrorMatch": "Heslá sa nezhodujú",
|
||||
"saveProfileBtn": "Uložiť Profil",
|
||||
"createProfileBtn": "Vytvoriť Profil",
|
||||
"passwordErrorEmpty": "Heslo nemôže byť prázdne",
|
||||
"password2Label": "Znovu zadajte heslo",
|
||||
"password1Label": "Heslo",
|
||||
"currentPasswordLabel": "Aktuálne Heslo",
|
||||
"yourDisplayName": "Vaše Zobrazované Meno",
|
||||
"noPasswordWarning": "Nepoužitie hesla na tomto účte znamená, že všetky dáta uložené lokálne nebudú šifrované",
|
||||
"radioNoPassword": "Nešifrované (Žiadne heslo)",
|
||||
"radioUsePassword": "Heslo",
|
||||
"newProfile": "Nový Profil",
|
||||
"defaultProfileName": "Alice",
|
||||
"profileName": "Zobrazované Meno",
|
||||
"editProfileTitle": "Upraviť Profil",
|
||||
"addProfileTitle": "Pridať nový profil",
|
||||
"deleteBtn": " Vymazať",
|
||||
"saveBtn": "Uložiť",
|
||||
"displayNameLabel": "Zobrazované Meno",
|
||||
"copiedToClipboardNotification": "Skopírované do Schránky",
|
||||
"addressLabel": "Adresa",
|
||||
"puzzleGameBtn": "Puzzle Hra",
|
||||
"bulletinsBtn": "Bulletiny",
|
||||
"listsBtn": "Zoznamy",
|
||||
"chatBtn": "Chat",
|
||||
"rejectGroupBtn": "Odmietnuť",
|
||||
"acceptGroupBtn": "Prijať",
|
||||
"acceptGroupInviteLabel": "Chcete prijať pozvánku do",
|
||||
"newGroupBtn": "Vytvoriť novú skupinu",
|
||||
"copyBtn": "Kopírovať",
|
||||
"pendingLabel": "Čaká sa",
|
||||
"acknowledgedLabel": "Potvrdené",
|
||||
"couldNotSendMsgError": "Správa nemohla byť odoslaná",
|
||||
"dmTooltip": "Klikni pre poslanie priamej správy",
|
||||
"membershipDescription": "Dole je list užívateľov ktorý do skupiny poslali správy. List nemusí zobrazovať všetkých užívateľov ktorý majú ku skupine prístup.",
|
||||
"addListItemBtn": "Pridať Položku",
|
||||
"searchList": "Hľadať v Zozname",
|
||||
"update": "Aktualizovať",
|
||||
"inviteBtn": "Pozvať",
|
||||
"inviteToGroupLabel": "Pozvať do skupiny",
|
||||
"groupNameLabel": "Meno skupiny",
|
||||
"viewServerInfo": "Informácie o Servery",
|
||||
"serverSynced": "Synchronizované",
|
||||
"serverConnectivityDisconnected": "Server Odpojený",
|
||||
"serverConnectivityConnected": "Server Pripojený",
|
||||
"serverInfo": "Informácie o Servery",
|
||||
"invitationLabel": "Pozvánka",
|
||||
"serverLabel": "Server",
|
||||
"search": "Vyhľadať...",
|
||||
"blocked": "Zablokované",
|
||||
"titlePlaceholder": "názov...",
|
||||
"postNewBulletinLabel": "Poslať nový bulletin",
|
||||
"newBulletinLabel": "Nový Bulletin",
|
||||
"joinGroup": "Pripojiť sa k skupine",
|
||||
"createGroup": "Vytvoriť skupinu",
|
||||
"groupAddr": "Adresa",
|
||||
"invitation": "Pozvánka",
|
||||
"server": "Server",
|
||||
"peerName": "Meno",
|
||||
"peerAddress": "Adresa",
|
||||
"joinGroupTab": "Pripojiť sa k skupine",
|
||||
"createGroupTab": "Vytvoriť skupinu",
|
||||
"createGroupBtn": " Vytvoriť",
|
||||
"defaultGroupName": "Úžasná Skupina",
|
||||
"createGroupTitle": "Vytvoriť Skupinu"
|
||||
}
|
|
@ -43,7 +43,7 @@ Future<void> main() async {
|
|||
LicenseRegistry.addLicense(() => licenses());
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
print("runApp()");
|
||||
return runApp(Flwtch());
|
||||
runApp(Flwtch());
|
||||
}
|
||||
|
||||
class Flwtch extends StatefulWidget {
|
||||
|
@ -64,20 +64,13 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
|||
final GlobalKey<NavigatorState> navKey = GlobalKey<NavigatorState>();
|
||||
|
||||
Future<dynamic> shutdownDirect(MethodCall call) async {
|
||||
EnvironmentConfig.debugLog("$call");
|
||||
print(call);
|
||||
await cwtch.Shutdown();
|
||||
return Future.value({});
|
||||
}
|
||||
|
||||
@override
|
||||
initState() {
|
||||
|
||||
globalSettings = Settings(Locale("en", ''), CwtchDark());
|
||||
globalErrorHandler = ErrorHandler();
|
||||
globalTorStatus = TorStatus();
|
||||
globalAppState = AppState();
|
||||
globalServersList = ServerListState();
|
||||
|
||||
print("initState: running...");
|
||||
windowManager.addListener(this);
|
||||
super.initState();
|
||||
|
@ -130,7 +123,6 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
|||
key: Key('app'),
|
||||
navigatorKey: navKey,
|
||||
locale: settings.locale,
|
||||
showPerformanceOverlay: false,
|
||||
localizationsDelegates: <LocalizationsDelegate<dynamic>>[
|
||||
AppLocalizations.delegate,
|
||||
MaterialLocalizationDelegate(),
|
||||
|
@ -194,17 +186,16 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
|||
|
||||
Future<void> shutdown() async {
|
||||
globalAppState.SetModalState(ModalState.shutdown);
|
||||
EnvironmentConfig.debugLog("shutting down");
|
||||
await cwtch.Shutdown();
|
||||
// Wait a few seconds as shutting down things takes a little time..
|
||||
{
|
||||
Future.delayed(Duration(seconds: 1)).then((value) {
|
||||
if (Platform.isAndroid) {
|
||||
SystemNavigator.pop();
|
||||
} else if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) {
|
||||
print("Exiting...");
|
||||
exit(0);
|
||||
}
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
// Invoked via notificationClickChannel by MyBroadcastReceiver in MainActivity.kt
|
||||
|
@ -268,9 +259,9 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
|||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
void dispose() async {
|
||||
globalAppState.SetModalState(ModalState.shutdown);
|
||||
cwtch.Shutdown();
|
||||
await cwtch.Shutdown();
|
||||
windowManager.removeListener(this);
|
||||
cwtch.dispose();
|
||||
super.dispose();
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
import 'package:cwtch/themes/cwtch.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:cwtch/errorHandler.dart';
|
||||
import 'package:cwtch/settings.dart';
|
||||
import 'package:glob/list_local_fs.dart';
|
||||
import 'config.dart';
|
||||
import 'licenses.dart';
|
||||
import 'main.dart';
|
||||
import 'themes/opaque.dart';
|
||||
|
@ -13,20 +10,16 @@ import 'themes/opaque.dart';
|
|||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'dart:typed_data';
|
||||
import "package:flutter_driver/driver_extension.dart";
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:glob/glob.dart';
|
||||
|
||||
var globalSettings = Settings(Locale("en", ''), CwtchDark());
|
||||
var globalErrorHandler = ErrorHandler();
|
||||
|
||||
Future<void> main() async {
|
||||
enableFlutterDriverExtension();
|
||||
print("Cwtch version: ${EnvironmentConfig.BUILD_VER} built on: ${EnvironmentConfig.BUILD_DATE}");
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
print("runApp()");
|
||||
void main() {
|
||||
LicenseRegistry.addLicense(() => licenses());
|
||||
return DiskAssetBundle.loadGlob(['profiles/*.png']).then((assetBundle) {
|
||||
DiskAssetBundle.loadGlob(['profiles/*.png']).then((assetBundle) {
|
||||
runApp(DefaultAssetBundle(
|
||||
bundle: assetBundle,
|
||||
child: Flwtch(),
|
||||
|
|
|
@ -59,7 +59,7 @@ class FileMessage extends Message {
|
|||
if (shareObj == null) {
|
||||
return MessageRow(MalformedBubble(), 0);
|
||||
}
|
||||
String nameSuggestion = shareObj['f'] as String;
|
||||
String nameSuggestion = shareObj['n'] as String;
|
||||
String rootHash = shareObj['h'] as String;
|
||||
String nonce = shareObj['n'] as String;
|
||||
int fileSize = shareObj['s'] as int;
|
||||
|
@ -68,7 +68,8 @@ class FileMessage extends Message {
|
|||
}
|
||||
return Container(
|
||||
alignment: Alignment.center,
|
||||
height: 100,
|
||||
width: 50,
|
||||
height: 50,
|
||||
child: FileBubble(
|
||||
nameSuggestion,
|
||||
rootHash,
|
||||
|
|
|
@ -38,7 +38,7 @@ class QuotedMessage extends Message {
|
|||
this.content,
|
||||
);
|
||||
var content = message["body"];
|
||||
var formatMessages = Provider.of<Settings>(bcontext).isExperimentEnabled(FormattingExperiment);
|
||||
var formatMessages = Provider.of<Settings>(context).isExperimentEnabled(FormattingExperiment);
|
||||
return SelectableLinkify(
|
||||
text: content + '\u202F',
|
||||
options: LinkifyOptions(messageFormatting: formatMessages, parseLinks: false, looseUrl: true, defaultToHttps: true),
|
||||
|
|
|
@ -31,9 +31,9 @@ class TextMessage extends Message {
|
|||
linkifiers: [UrlLinkifier()],
|
||||
onOpen: null,
|
||||
textAlign: TextAlign.left,
|
||||
style: TextStyle(overflow: TextOverflow.fade),
|
||||
style: TextStyle(overflow: TextOverflow.ellipsis),
|
||||
codeStyle: TextStyle(overflow: TextOverflow.ellipsis),
|
||||
textWidthBasis: TextWidthBasis.parent,
|
||||
textWidthBasis: TextWidthBasis.longestLine,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -154,12 +154,6 @@ class NixNotificationManager implements NotificationsManager {
|
|||
}
|
||||
|
||||
NotificationsManager newDesktopNotificationsManager(Future<void> Function(String profileOnion, int convoId) notificationSelectConvo) {
|
||||
|
||||
// We don't want notifications in Dev Mode
|
||||
if (EnvironmentConfig.TEST_MODE) {
|
||||
return NullNotificationsManager();
|
||||
}
|
||||
|
||||
if (Platform.isLinux && !Platform.isAndroid) {
|
||||
try {
|
||||
return NixNotificationManager(notificationSelectConvo);
|
||||
|
|
|
@ -122,15 +122,12 @@ class Linkify extends StatelessWidget {
|
|||
linkifiers: linkifiers,
|
||||
);
|
||||
|
||||
return SelectionArea(
|
||||
child: RichText(
|
||||
selectionRegistrar: SelectionContainer.maybeOf(context),
|
||||
text: buildTextSpan(
|
||||
return Text.rich(
|
||||
buildTextSpan(
|
||||
elements,
|
||||
style: Theme.of(context).textTheme.bodyText2?.merge(style),
|
||||
onOpen: onOpen,
|
||||
useMouseRegion: true,
|
||||
context: context,
|
||||
linkStyle: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText2
|
||||
|
@ -151,7 +148,7 @@ class Linkify extends StatelessWidget {
|
|||
locale: locale,
|
||||
textWidthBasis: textWidthBasis,
|
||||
textHeightBehavior: textHeightBehavior,
|
||||
));
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -300,7 +297,6 @@ class SelectableLinkify extends StatelessWidget {
|
|||
style: Theme.of(context).textTheme.bodyText2?.merge(style),
|
||||
codeStyle: Theme.of(context).textTheme.bodyText2?.merge(codeStyle),
|
||||
onOpen: onOpen,
|
||||
context: context,
|
||||
linkStyle: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText2
|
||||
|
@ -333,7 +329,6 @@ class SelectableLinkify extends StatelessWidget {
|
|||
cursorHeight: cursorHeight,
|
||||
selectionControls: selectionControls,
|
||||
onSelectionChanged: onSelectionChanged,
|
||||
style: style,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -342,13 +337,11 @@ class LinkableSpan extends WidgetSpan {
|
|||
LinkableSpan({
|
||||
required MouseCursor mouseCursor,
|
||||
required InlineSpan inlineSpan,
|
||||
required BuildContext context,
|
||||
}) : super(
|
||||
child: MouseRegion(
|
||||
cursor: mouseCursor,
|
||||
child: RichText(
|
||||
text: inlineSpan,
|
||||
selectionRegistrar: SelectionContainer.maybeOf(context),
|
||||
child: Text.rich(
|
||||
inlineSpan,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
@ -361,7 +354,6 @@ TextSpan buildTextSpan(
|
|||
TextStyle? linkStyle,
|
||||
TextStyle? codeStyle,
|
||||
LinkCallback? onOpen,
|
||||
required BuildContext context,
|
||||
bool useMouseRegion = false,
|
||||
}) {
|
||||
return TextSpan(
|
||||
|
@ -369,18 +361,20 @@ TextSpan buildTextSpan(
|
|||
(element) {
|
||||
if (element is LinkableElement) {
|
||||
if (useMouseRegion) {
|
||||
return TextSpan(
|
||||
text: element.text,
|
||||
style: linkStyle,
|
||||
mouseCursor: SystemMouseCursors.click,
|
||||
recognizer: onOpen != null ? (TapGestureRecognizer()..onTap = () => onOpen(element)) : null,
|
||||
semanticsLabel: element.text);
|
||||
return TooltipSpan(
|
||||
message: element.url,
|
||||
inlineSpan: LinkableSpan(
|
||||
mouseCursor: SystemMouseCursors.click,
|
||||
inlineSpan: TextSpan(text: element.text, style: linkStyle, recognizer: onOpen != null ? (TapGestureRecognizer()..onTap = () => onOpen(element)) : null, semanticsLabel: element.text),
|
||||
));
|
||||
} else {
|
||||
return TextSpan(
|
||||
text: element.text,
|
||||
style: linkStyle,
|
||||
recognizer: onOpen != null ? (TapGestureRecognizer()..onTap = () => onOpen(element)) : null,
|
||||
);
|
||||
return TooltipSpan(
|
||||
message: element.url,
|
||||
inlineSpan: TextSpan(
|
||||
text: element.text,
|
||||
style: linkStyle,
|
||||
recognizer: onOpen != null ? (TapGestureRecognizer()..onTap = () => onOpen(element)) : null,
|
||||
));
|
||||
}
|
||||
} else if (element is BoldElement) {
|
||||
return TextSpan(text: element.text.replaceAll("*", ""), style: style?.copyWith(fontWeight: FontWeight.bold), semanticsLabel: element.text);
|
||||
|
@ -434,13 +428,11 @@ class TooltipSpan extends WidgetSpan {
|
|||
TooltipSpan({
|
||||
required String message,
|
||||
required InlineSpan inlineSpan,
|
||||
required BuildContext context,
|
||||
}) : super(
|
||||
child: Tooltip(
|
||||
message: message,
|
||||
child: RichText(
|
||||
text: inlineSpan,
|
||||
selectionRegistrar: SelectionContainer.maybeOf(context),
|
||||
child: Text.rich(
|
||||
inlineSpan,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
@ -402,7 +402,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
|
|||
if (checkDownloadDirectory(context, settings)) {
|
||||
settings.enableExperiment(FileSharingExperiment);
|
||||
} else {
|
||||
settings.enableExperiment(FileSharingExperiment);
|
||||
settings.disableExperiment(FileSharingExperiment);
|
||||
settings.disableExperiment(ImagePreviewsExperiment);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -149,8 +149,6 @@ class _MessageViewState extends State<MessageView> {
|
|||
backgroundColor: Provider.of<Settings>(context).theme.backgroundMainColor,
|
||||
floatingActionButton: showDown
|
||||
? FloatingActionButton(
|
||||
// heroTags need to be unique per screen (important when we pop up and down)...
|
||||
heroTag: "popDown" + Provider.of<ContactInfoState>(context, listen: false).onion,
|
||||
child: Icon(Icons.arrow_downward, color: Provider.of<Settings>(context).current().defaultButtonTextColor),
|
||||
onPressed: () {
|
||||
Provider.of<AppState>(context, listen: false).initialScrollIndex = 0;
|
||||
|
|
|
@ -2,7 +2,6 @@ import 'dart:io';
|
|||
import 'dart:math';
|
||||
|
||||
import 'package:cwtch/config.dart';
|
||||
import 'package:cwtch/cwtch_icons_icons.dart';
|
||||
import 'package:cwtch/models/contact.dart';
|
||||
import 'package:cwtch/models/filedownloadprogress.dart';
|
||||
import 'package:cwtch/models/message.dart';
|
||||
|
@ -132,13 +131,6 @@ class FileBubbleState extends State<FileBubble> {
|
|||
// we don't preview a non downloaded file...
|
||||
if (widget.isPreview && myFile != null) {
|
||||
return getPreview(context);
|
||||
} else if (widget.isPreview && myFile == null) {
|
||||
return Row(
|
||||
children: [
|
||||
Icon(CwtchIcons.attached_file_2, size: 32, color: Provider.of<Settings>(context).theme.messageFromMeTextColor),
|
||||
Flexible(child: Text(widget.nameSuggestion, style: TextStyle(color: Provider.of<Settings>(context).theme.messageFromMeTextColor)))
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
return LayoutBuilder(builder: (bcontext, constraints) {
|
||||
|
@ -337,7 +329,7 @@ class FileBubbleState extends State<FileBubble> {
|
|||
maxLines: 4,
|
||||
textWidthBasis: TextWidthBasis.parent,
|
||||
),
|
||||
leading: Icon(CwtchIcons.attached_file_2, size: 32, color: Provider.of<Settings>(context).theme.messageFromMeTextColor));
|
||||
leading: Icon(Icons.attach_file, size: 32, color: Provider.of<Settings>(context).theme.messageFromMeTextColor));
|
||||
}
|
||||
|
||||
// Construct an file chrome
|
||||
|
@ -385,7 +377,7 @@ class FileBubbleState extends State<FileBubble> {
|
|||
maxLines: 4,
|
||||
textWidthBasis: TextWidthBasis.parent,
|
||||
),
|
||||
leading: Icon(CwtchIcons.attached_file_2, size: 32, color: Provider.of<Settings>(context).theme.messageFromOtherTextColor),
|
||||
leading: Icon(Icons.attach_file, size: 32, color: Provider.of<Settings>(context).theme.messageFromOtherTextColor),
|
||||
trailing: Visibility(
|
||||
visible: speed != "0 B/s",
|
||||
child: SelectableText(
|
||||
|
|
|
@ -215,16 +215,14 @@ class MessageRowState extends State<MessageRow> with SingleTickerProviderStateMi
|
|||
var mr = MouseRegion(
|
||||
// For desktop...
|
||||
onHover: (event) {
|
||||
if (Provider.of<AppState>(context, listen: false).hoveredIndex != Provider.of<MessageMetadata>(context, listen: false).messageID) {
|
||||
setState(() {
|
||||
Provider.of<AppState>(context, listen: false).hoveredIndex = Provider.of<MessageMetadata>(context, listen: false).messageID;
|
||||
});
|
||||
}
|
||||
setState(() {
|
||||
Provider.of<AppState>(context, listen: false).hoveredIndex = Provider.of<MessageMetadata>(context, listen: false).messageID;
|
||||
});
|
||||
},
|
||||
onExit: (event) {
|
||||
// setState(() {
|
||||
// Provider.of<AppState>(context, listen: false).hoveredIndex = -1;
|
||||
//});
|
||||
setState(() {
|
||||
Provider.of<AppState>(context, listen: false).hoveredIndex = -1;
|
||||
});
|
||||
},
|
||||
child: GestureDetector(
|
||||
onPanUpdate: (details) {
|
||||
|
|
|
@ -125,11 +125,16 @@ class QuotedMessageBubbleState extends State<QuotedMessageBubble> {
|
|||
height: 75,
|
||||
child: Column(children: [
|
||||
Align(alignment: Alignment.centerLeft, child: wdgReplyingTo),
|
||||
Flexible(
|
||||
child: Row(mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [
|
||||
Row(mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [
|
||||
Padding(padding: EdgeInsets.symmetric(vertical: 5.0, horizontal: 10.0), child: Icon(Icons.reply, size: 32, color: qTextColor)),
|
||||
Flexible(child: qMessage.getPreviewWidget(context)),
|
||||
]))
|
||||
Flexible(
|
||||
child: DefaultTextStyle(
|
||||
textWidthBasis: TextWidthBasis.parent,
|
||||
child: qMessage.getPreviewWidget(context),
|
||||
style: TextStyle(color: qTextColor),
|
||||
overflow: TextOverflow.fade,
|
||||
))
|
||||
])
|
||||
]))));
|
||||
} catch (e) {
|
||||
return MalformedBubble();
|
||||
|
|
|
@ -252,11 +252,9 @@ packages:
|
|||
flutter_gherkin:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
path: "."
|
||||
ref: main
|
||||
resolved-ref: "9b817676e4ad623a875accaa26097669a9bd2c7c"
|
||||
url: "https://git.openprivacy.ca/openprivacy/flutter_gherkin"
|
||||
source: git
|
||||
name: flutter_gherkin
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0-rc.17"
|
||||
flutter_local_notifications:
|
||||
dependency: "direct main"
|
||||
|
|
|
@ -51,11 +51,9 @@ dependencies:
|
|||
dev_dependencies:
|
||||
msix: ^3.6.2
|
||||
build_runner: any
|
||||
flutter_gherkin:
|
||||
git:
|
||||
url: https://git.openprivacy.ca/openprivacy/flutter_gherkin
|
||||
ref: main
|
||||
flutter_gherkin: ^3.0.0-rc.17
|
||||
|
||||
# integration_test: any
|
||||
# Uncomment to update lokalise translations (see README for list of deps to comment out bc incompatibilities)
|
||||
#dev_dependencies:
|
||||
# flutter_lokalise: any
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/bash
|
||||
flutter --version
|
||||
flutter pub get
|
||||
export DISPLAY=:99
|
||||
Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
|
||||
./run-tests.sh $1
|
23
run-tests.sh
23
run-tests.sh
|
@ -1,15 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
paths=$(find . -wholename "./integration_test/features/*$1*.feature" | sort | sed -z "s/\\n/','/g;s/,'$//;s/^/'/")
|
||||
if [ ! -e run-tests.env ]; then
|
||||
echo "#!/bin/bash" > run-tests.env
|
||||
echo "LDPATH=./linux/" >> run-tests.env
|
||||
echo "HEADLESS=false" >> run-tests.env
|
||||
fi
|
||||
|
||||
source run-tests.env
|
||||
paths=$(find . -wholename "./integration_test/features/*/$1*.feature" | sort | sed -z "s/\\n/','/g;s/,'$//;s/^/'/")
|
||||
sed "s|featurePaths: REPLACED_BY_SCRIPT|featurePaths: <String>[$paths]|" integration_test/gherkin_suite_test.editable.dart > integration_test/gherkin_suite_test.dart
|
||||
flutter pub run build_runner clean
|
||||
flutter pub run build_runner build --delete-conflicting-outputs
|
||||
|
||||
PATH=$PATH:$PWD/linux/Tor
|
||||
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$PWD/linux/":"$PWD/linux/Tor/"
|
||||
PATH=$PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH LOG_FILE=/home/sarah/PARA/projects/cwtch/cwtch.log CWTCH_HOME=$PWD/integration_test/env/temp/ flutter test -d linux --dart-define TEST_MODE=true integration_test/gherkin_suite_test.dart
|
||||
#node index2.js
|
||||
#if [ "$HEADLESS" = "false" ]; then
|
||||
# xdg-open integration_test/gherkin/reports/cucumber_report.html
|
||||
#fi
|
||||
pkill tor
|
||||
LD_LIBRARY_PATH=$LDPATH CWTCH_HOME=./integration_test/env/temp/ flutter drive --headless --dart-define TEST_MODE=true --driver=test_driver/integration_test_driver.dart --target=integration_test/gherkin_suite_test.dart
|
||||
node index2.js
|
||||
if [ "$HEADLESS" = "false" ]; then
|
||||
xdg-open integration_test/gherkin/reports/cucumber_report.html
|
||||
fi
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
import 'dart:async';
|
||||
import 'package:flutter_gherkin/flutter_gherkin.dart';
|
||||
import 'package:gherkin/gherkin.dart';
|
||||
import 'package:glob/glob.dart';
|
||||
import 'steps/form_elements.dart';
|
||||
|
||||
Future<void> main() {
|
||||
final config = FlutterTestConfiguration()
|
||||
..features = [Glob(r"test_driver/features/**.feature")]
|
||||
//..features = [Glob(r"test_driver/features/Settings_test.feature")]
|
||||
..reporters = [ProgressReporter()]
|
||||
..stepDefinitions = [CheckSwitchChecked(), CheckSwitchUnchecked(),]
|
||||
..restartAppBetweenScenarios = true
|
||||
..targetAppPath = "test_driver/app.dart";
|
||||
//..exitAfterTestRun = true;
|
||||
return GherkinRunner().execute(config);
|
||||
}
|
Loading…
Reference in New Issue