diff options
-rw-r--r-- | regress/sbin/ipsecctl/sa21.in | 42 | ||||
-rw-r--r-- | regress/sbin/ipsecctl/sa21.ok | 52 | ||||
-rw-r--r-- | regress/sbin/ipsecctl/sa22.in | 1 | ||||
-rw-r--r-- | regress/sbin/ipsecctl/sa22.ok | 1 | ||||
-rw-r--r-- | regress/sbin/ipsecctl/sa23.in | 42 | ||||
-rw-r--r-- | regress/sbin/ipsecctl/sa23.ok | 52 | ||||
-rw-r--r-- | regress/sbin/ipsecctl/sa24.in | 14 | ||||
-rw-r--r-- | regress/sbin/ipsecctl/sa24.ok | 28 |
8 files changed, 232 insertions, 0 deletions
diff --git a/regress/sbin/ipsecctl/sa21.in b/regress/sbin/ipsecctl/sa21.in new file mode 100644 index 00000000000..ca4d87c24bb --- /dev/null +++ b/regress/sbin/ipsecctl/sa21.in @@ -0,0 +1,42 @@ +esp from 3ffe::1 to 3ffe::10 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 3ffe::2 to 3ffe::10 spi 0x2eadbeef:0xbeef2ead \ + enc 3des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp from 3ffe::3 to 3ffe::10 spi 0x3eadbeef:0xbeef3ead \ + enc des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp from 3ffe::4 to 3ffe::10 spi 0x4eadbeef:0xbeef4ead \ + enc aes \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::5 to 3ffe::10 spi 0x5eadbeef:0xbeef5ead \ + enc aesctr \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 3ffe::6 to 3ffe::10 spi 0x6eadbeef:0xbeef6ead \ + enc blowfish \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp from 3ffe::7 to 3ffe::10 spi 0x7eadbeef:0xbeef7ead \ + enc cast128 \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp from 3ffe::8 to 3ffe::10 spi 0x8eadbeef:0xbeef8ead \ + enc null \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +esp from 3ffe::9 to 3ffe::10 spi 0x9eadbeef:0xbeef9ead \ + enc skipjack \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" diff --git a/regress/sbin/ipsecctl/sa21.ok b/regress/sbin/ipsecctl/sa21.ok new file mode 100644 index 00000000000..de767b5ab80 --- /dev/null +++ b/regress/sbin/ipsecctl/sa21.ok @@ -0,0 +1,52 @@ +esp tunnel from 3ffe::1 to 3ffe::10 spi 0x1eadbeef auth hmac-sha2-256 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::2 to 3ffe::10 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::3 to 3ffe::10 spi 0x3eadbeef auth hmac-sha1 enc des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeee +esp tunnel from 3ffe::4 to 3ffe::10 spi 0x4eadbeef auth hmac-sha1 enc aes + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 enc aes + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::5 to 3ffe::10 spi 0x5eadbeef auth hmac-sha1 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::5 spi 0xbeef5ead auth hmac-sha1 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::6 to 3ffe::10 spi 0x6eadbeef auth hmac-sha1 enc blowfish + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::6 spi 0xbeef6ead auth hmac-sha1 enc blowfish + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::7 to 3ffe::10 spi 0x7eadbeef auth hmac-sha1 enc cast128 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::7 spi 0xbeef7ead auth hmac-sha1 enc cast128 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::8 to 3ffe::10 spi 0x8eadbeef auth hmac-sha1 enc null + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 3ffe::10 to 3ffe::8 spi 0xbeef8ead auth hmac-sha1 enc null + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp tunnel from 3ffe::9 to 3ffe::10 spi 0x9eadbeef auth hmac-sha1 enc skipjack + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeee +esp tunnel from 3ffe::10 to 3ffe::9 spi 0xbeef9ead auth hmac-sha1 enc skipjack + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeee diff --git a/regress/sbin/ipsecctl/sa22.in b/regress/sbin/ipsecctl/sa22.in new file mode 100644 index 00000000000..e66e9a7f26a --- /dev/null +++ b/regress/sbin/ipsecctl/sa22.in @@ -0,0 +1 @@ +ipip from 3ffe::1 to 3ffe::2 spi 0x0a000001 diff --git a/regress/sbin/ipsecctl/sa22.ok b/regress/sbin/ipsecctl/sa22.ok new file mode 100644 index 00000000000..e66e9a7f26a --- /dev/null +++ b/regress/sbin/ipsecctl/sa22.ok @@ -0,0 +1 @@ +ipip from 3ffe::1 to 3ffe::2 spi 0x0a000001 diff --git a/regress/sbin/ipsecctl/sa23.in b/regress/sbin/ipsecctl/sa23.in new file mode 100644 index 00000000000..cf76a75c6cc --- /dev/null +++ b/regress/sbin/ipsecctl/sa23.in @@ -0,0 +1,42 @@ +esp transport from 3ffe::1 to 3ffe::10 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" \ + enckey file "DIR/ek160:DIR/ek160" +esp transport from 3ffe::2 to 3ffe::10 spi 0x2eadbeef:0xbeef2ead \ + enc 3des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek192:DIR/ek192" +esp transport from 3ffe::3 to 3ffe::10 spi 0x3eadbeef:0xbeef3ead \ + enc des-cbc \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek64:DIR/ek64" +esp transport from 3ffe::4 to 3ffe::10 spi 0x4eadbeef:0xbeef4ead \ + enc aes \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 3ffe::5 to 3ffe::10 spi 0x5eadbeef:0xbeef5ead \ + enc aesctr \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp transport from 3ffe::6 to 3ffe::10 spi 0x6eadbeef:0xbeef6ead \ + enc blowfish \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek160:DIR/ek160" +esp transport from 3ffe::7 to 3ffe::10 spi 0x7eadbeef:0xbeef7ead \ + enc cast128 \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek128:DIR/ek128" +esp transport from 3ffe::8 to 3ffe::10 spi 0x8eadbeef:0xbeef8ead \ + enc null \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +esp transport from 3ffe::9 to 3ffe::10 spi 0x9eadbeef:0xbeef9ead \ + enc skipjack \ + auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" \ + enckey file "DIR/ek80:DIR/ek80" diff --git a/regress/sbin/ipsecctl/sa23.ok b/regress/sbin/ipsecctl/sa23.ok new file mode 100644 index 00000000000..a9c1be20ca6 --- /dev/null +++ b/regress/sbin/ipsecctl/sa23.ok @@ -0,0 +1,52 @@ +esp transport from 3ffe::1 to 3ffe::10 spi 0x1eadbeef auth hmac-sha2-256 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::2 to 3ffe::10 spi 0x2eadbeef auth hmac-sha1 enc 3des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::2 spi 0xbeef2ead auth hmac-sha1 enc 3des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::3 to 3ffe::10 spi 0x3eadbeef auth hmac-sha1 enc des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::3 spi 0xbeef3ead auth hmac-sha1 enc des-cbc + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeee +esp transport from 3ffe::4 to 3ffe::10 spi 0x4eadbeef auth hmac-sha1 enc aes + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 enc aes + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::5 to 3ffe::10 spi 0x5eadbeef auth hmac-sha1 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::5 spi 0xbeef5ead auth hmac-sha1 enc aesctr + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::6 to 3ffe::10 spi 0x6eadbeef auth hmac-sha1 enc blowfish + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::6 spi 0xbeef6ead auth hmac-sha1 enc blowfish + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::7 to 3ffe::10 spi 0x7eadbeef auth hmac-sha1 enc cast128 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::7 spi 0xbeef7ead auth hmac-sha1 enc cast128 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::8 to 3ffe::10 spi 0x8eadbeef auth hmac-sha1 enc null + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp transport from 3ffe::10 to 3ffe::8 spi 0xbeef8ead auth hmac-sha1 enc null + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +esp transport from 3ffe::9 to 3ffe::10 spi 0x9eadbeef auth hmac-sha1 enc skipjack + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeee +esp transport from 3ffe::10 to 3ffe::9 spi 0xbeef9ead auth hmac-sha1 enc skipjack + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + enckey 0xeeeeeeeeeeeeeeeeeeee diff --git a/regress/sbin/ipsecctl/sa24.in b/regress/sbin/ipsecctl/sa24.in new file mode 100644 index 00000000000..0f4c7ea2849 --- /dev/null +++ b/regress/sbin/ipsecctl/sa24.in @@ -0,0 +1,14 @@ +ah transport from 3ffe::1 to 3ffe::8 spi 0x1eadbeef:0xbeef1ead \ + authkey file "DIR/ak256:DIR/ak256" +ah transport from 3ffe::2 to 3ffe::8 spi 0x2eadbeef:0xbeef2ead auth hmac-md5 \ + authkey file "DIR/ak128:DIR/ak128" +ah transport from 3ffe::3 to 3ffe::8 spi 0x3eadbeef:0xbeef3ead auth hmac-ripemd160 \ + authkey file "DIR/ak160:DIR/ak160" +ah transport from 3ffe::4 to 3ffe::8 spi 0x4eadbeef:0xbeef4ead auth hmac-sha1 \ + authkey file "DIR/ak160:DIR/ak160" +ah transport from 3ffe::5 to 3ffe::8 spi 0x5eadbeef:0xbeef5ead auth hmac-sha2-256 \ + authkey file "DIR/ak256:DIR/ak256" +ah transport from 3ffe::6 to 3ffe::8 spi 0x6eadbeef:0xbeef6ead auth hmac-sha2-384 \ + authkey file "DIR/ak384:DIR/ak384" +ah transport from 3ffe::7 to 3ffe::8 spi 0x7eadbeef:0xbeef7ead auth hmac-sha2-512 \ + authkey file "DIR/ak512:DIR/ak512" diff --git a/regress/sbin/ipsecctl/sa24.ok b/regress/sbin/ipsecctl/sa24.ok new file mode 100644 index 00000000000..934a86a7bfb --- /dev/null +++ b/regress/sbin/ipsecctl/sa24.ok @@ -0,0 +1,28 @@ +ah transport from 3ffe::1 to 3ffe::8 spi 0x1eadbeef auth hmac-sha2-256 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::1 spi 0xbeef1ead auth hmac-sha2-256 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::2 to 3ffe::8 spi 0x2eadbeef auth hmac-md5 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::2 spi 0xbeef2ead auth hmac-md5 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::3 to 3ffe::8 spi 0x3eadbeef auth hmac-ripemd160 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::3 spi 0xbeef3ead auth hmac-ripemd160 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::4 to 3ffe::8 spi 0x4eadbeef auth hmac-sha1 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::4 spi 0xbeef4ead auth hmac-sha1 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::5 to 3ffe::8 spi 0x5eadbeef auth hmac-sha2-256 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::5 spi 0xbeef5ead auth hmac-sha2-256 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::6 to 3ffe::8 spi 0x6eadbeef auth hmac-sha2-384 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::6 spi 0xbeef6ead auth hmac-sha2-384 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::7 to 3ffe::8 spi 0x7eadbeef auth hmac-sha2-512 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ah transport from 3ffe::8 to 3ffe::7 spi 0xbeef7ead auth hmac-sha2-512 + authkey 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |