symm/ccm.h, symm/ccm-def.h: Implement the CCM authenticated encryption mode.
[catacomb] / symm / t / rijndael192
index ebfb230..248cbc3 100644 (file)
@@ -2934,6 +2934,129 @@ rijndael192-cmac {
     3848a7fc35a38ec5c202692eb9cc03067f1e3a587996a2fe;
 }
 
+rijndael192-ccm {
+  60d7bcda163547d348b7551195e77022
+    907dd1dff7dac5c9941d26d0c6eb14ad568f86
+    ""
+    ""
+    ""
+    eb328a4c;
+  edd1dc9268eeee533285a6ed810c9b68
+    9daaa9060d2d4b6003062365b0a54364c76c16
+    0f
+    ""
+    ""
+    b2ac3bb1;
+  11896c4794846ecfa14a7130c9f13712
+    0634c9519848a877ff77bf79192a5b50ade5d9
+    ""
+    cd
+    d3
+    2fe24f74;
+  739a3d1f337f29549e6b0d27a4ba2340
+    85406a6136512061f7080cc07d
+    f0591d8fa21f2dd88374d8cde8e160ad10997a21635c6d62c9269029df3e6057acc87638f508046733d9ff61cdbda3b3e9878731ebfedd4705e505da1435dceaa7b1cc49ae1d50c3
+    8201a894476b3f102b752eb9529533966f27043eb621b7f65b000961040ef2f9b2fc5fa450727a9b542cde52ebfda19d0ccc520f215eb57bb3a4f3ebbbb18ac6c95a97a48030370c
+    6d7e47a271f0a9140ab83f9874698af802509e3ce08ae633274ec72ba7fc0439a766245ae5ea7e1581432240c5e9400e5d4da1d9f3ab8d203cf35bbc9bdc48354be9ab81d3c97197
+    fa0923d87206b84258099d69261e1f86f7da4740051c5087;
+  33d090c54215abd6b3ad54efc9a38378
+    c5b93bf4f2aad2605faee2b03f
+    b648e27fff63102758fe2b69ac26afa3349829b94586306fed54154f8f28523c03d4de1600157846b710ee72807a2219bfb474fd71d891f24bb65d1563259f9eb53b57
+    1ea629c54d57dd2d42f70800df9fcbaca48b77dba189196d1ebba10b0467cb9fc2712a199e533fa9156308cdec3f768281e040a9b9a222bd689aef66f5306ceb0c6b08ac8b0a22260c571b4a42
+    3fc60a985fd9a0b75ff268e4dbf8c87195dcd97029ed59b6a8592fac9a954fd250025e1cb3fb3c7d509e327ceedf08d3c90467a66f23c7a45369ce96c0450e44b09434979c7962c4485c2b2bbf
+    54ae41dbd56b7171107397fa7f4aa3a81f889a179161bcee;
+  bb8fdb233bfa6a5cfb0bad7d95214ade49cb3b6f
+    5fe8368131115c037ba323fe1dc8151784873f
+    ""
+    ""
+    ""
+    b65bbb04;
+  0eb5b647da6794c18b5337685a96ed65b9aca338
+    527ef19b09c063c46f88de9fd41e72d7b97e23
+    e6
+    ""
+    ""
+    d1f9ef31;
+  eabdff3bcd211499268878dbf30f1dad89d4b9b1
+    2012e4713df46795630e7952d22bb02d7100b8
+    ""
+    b6
+    f8
+    3b797ce2;
+  49377d20a8f083455b663e4ee1315f3c8f2aebfa
+    921451dcd1af5813b70d30ce2f
+    1fef6ef315d0798391805da08da3aefc5f8584b7c5e617669c0f16e39815d4e9cfce3ed1ecdf3d264a7f16cb16c2e815f422cdf0c8e30308be3c31e6bc58c0b7cadcb658b970e474
+    79a684b5aefa69a4cd52147ed12ca986981a874498ad0abef8bc4fcb70e27e98ef1f0446b42fb144d44b6d00f06dc188d472a784e0c6f21195a3b9f4ae985511265febd11c164720
+    7b80a5b2f5259f81e3e755ac7afcaf2dfc39714c0b17a69c8a126fcf854ce88936114c5309af3ebc4d06437399884d56edcd0d5d89c0106326b3f801ac391c6ecfd167efc7d1b7d7
+    4b5a71ab534a4ae72dd6709be87c69173467728ed407de1f;
+  eef9eb1c8dd0b00951f284649016ed0045633185
+    4bc78bf43966eb0cfa9138ddc3
+    9908445608fe95e81c2533e31c9c1a9851bc2810d858cbbc8424d126b807e6daa089c3f9099c5ffb824173d7634c04226f30cbb7f0e4a973a8cd190107314717a77456
+    f3ff669c732b58db8f48af65f7cc9e3fb90e1721b730374ffc9bc597f56ccbb2f294b38766fc69f6a9f2c0945ffd505003cc0cae9ce021a5f1fa4ffa91544485f1a1258b2b9b8f0911e32d65cc
+    24d3d61a7ec5951c8e7687bf216082e306d71c7a9351d45e7272418a2e4a22c8d5f5255abc0f1f081919b0910596727bc3ac57f0f4e55d562144ea20ccac5c640ea08baf53f71e35faaa8d75f0
+    65337469537455c0488f31bdad41f2bd174c2b890dad1d33;
+  1770a18cbfe6effd1ff6778554acf1270485b203a3c1c4c967c0a458
+    cb948bdd409b687fa3a6827b480aa3a4c84cef
+    ""
+    ""
+    ""
+    773f8182;
+  64f6c9b53bf8f957f4b03cf43e89957f9a3e8128f8743d16687b7bb8
+    deb9bd205b70e04c091d205cdad9e9a79b1abf
+    91
+    ""
+    ""
+    1bad4133;
+  b0851e5ca605ac8451399587011677508a15dde524af3e2bee064654
+    1a42c2ecccb44d65bad397abfaf529ee41cf9a
+    ""
+    05
+    41
+    fdcd5753;
+  c7efedef3401539c51d2a90bbf7f1bfc338ab0ef5746ea8fdcccd213
+    e33f7e8a5718fd25014107c8e7
+    d715a92add9589d1f5c054b2d983514605ec590294a319b9802068a9f891bc5ba5afabf8c3122d12d7ff3c41122d70d17d4569eaff59a332ba58d5d5589bfe079753ee1a957eb6d6
+    699e6b7ea2725cb2dac07ecde95759ac46fee6dda7abc8ad68daac90cfe22d2f1f2968cc42fa8b669ed3bb3542a9cf44bbc8c6254d980398bd94e66eb4563d405e51881e99027b8a
+    7f1ac5936bacdff5ab2339c74028aedc3266926aaa6685e9b688b5ac499d1a6912f4c957dbad07dc747ea4b9855f7656fd6952cbddb4a0296cf2e58227e0c05fad7d373f3a6a081f
+    bc33380a30663863f7d96afb80b51b7e89b08bbe5d523f62;
+  b9aea3ccf860b0009740763d96836c5f87b95460938de1288c69d80e
+    a12ff4bb5f069b8a2e86041c1b
+    9fc214e9ca2186ddf1f6a7a3aa7e740da967828e3604b35b15ffaa6c36800d9645563a308ba60076817523bd2abf1261b089d8f23a9c2835076a23faac2cdd67771cc6
+    67a8331f0a170b66283e4f834a06148f302c3973accd56f6f24e33958b8c2e2352fd61e4fa8fec816ac861a8b33779f09e7a10fc02a8f48afa3080ee119a52a9a817e4f2b94b0820cab383a8cf
+    055eaaabcac3b8d64c9d744eb534ea4259d6c114554cf28dee96aa729da5b70556f4a9a8724506b42fe6b2d266db7cd0b904881f7dcd312ea17e9d256e14fc40d8d6a6286cbcc3772cb3c79f25
+    72c96466655bf5d891fab5d415bc6065d3902ca0b8f95a40;
+  feea7c486315799dc875fba5
+    78c8ec4837898a92142b5b0677da1ac273117b
+    ""
+    ""
+    ""
+    bcaf4c92;
+  45bcfff5d5f8b6fde2893232
+    a9f81d14517ffae475f6b94a43a67b3d380d2f
+    9a
+    ""
+    ""
+    25f9961e;
+  aafe2dd721c0095c88088476
+    89211450ba8095ffab1eaadf66fd22ac197606
+    ""
+    3e
+    10
+    e0be6bf8;
+  113ab61f813e28a1397a7974
+    a1d7f4220c785fe426a5a0e80f
+    678d404147842941feeffdc2eb44dc8c0d5e8f444f7f4e0c893959b74dc23a7bb40e7e0013e5150686d2301b43a15a84e81d7f5cedaa49e2414ebf47970e560475cff206877de691
+    46acc3ab6cf8556b7aa776945948d1b8834df2196c92ec1718dcdeee0d52d9539726d2810391b3f9d10c39b07ae8f08ce7cee4758a386a9943e97dedfbe61e737882cd09c2b9a80f
+    633bd657368c964b774d76c9a8deef5e79c2db8c3ba300ff01b9a1685cb5688f8477c50bf62f380d5dcbf7e9fef05b73415e446f8675dcbd02c9a182b3647d7fc7e5320b9fc480bb
+    f3a1b675f8b96ce151ef507f6a587f4f9d78db3df352eef2;
+  34c0fde11c2481b11fc76bfa
+    4dbf710a9e544e0c536ca1e040
+    f9ad5b04140d98edabe08485290a4d87d13b07398a1458c2c6b61dbdbc1cccada8c1a0a9aabb6c4e3c3554f8fb1ef61614c270295dfc0ca6551ca4bdb75359f91cb9d9
+    21056b7de74fc9a9b37154ce6c0b396179d31f06a1dd5982cbc0d7cb23841da1ae8f4ae480cda98ad6cf2bacf6f9fd3f821330c43f3df6c2b3fac7cbcf96523d4723f91801325eb8553236651c
+    77d68b7c74c11fa6f23cab03c8e20965e7362191f15a359371f06954d0a8673d43d291db49563e5775d590a5b66a4de2c79fa96da0bbe7b18ff98fadead8cdc6bf8f559ed3675d46cca4cb27f3
+    828d1b75c068055451d00b6a0e8a5b0e5672f780c282a170;
+}
+
 rijndael192-eax {
   60d7bcda163547d348b7551195e77022
     ""
@@ -3080,3 +3203,174 @@ rijndael192-eax {
     f2a5115aa965c209277a24b0c325ce806520f4725aba623a5edd757c9b8ae4da2f4e918ceb2ba756bea2b7e16ce28cd808151ff29ea78c662ddaf739313c5930e2859da808369301b81db91309
     77613f8246951823e51a3370da0344a58531540bafeded71;
 }
+
+rijndael192-gcm {
+  60d7bcda163547d348b7551195e77022
+    ""
+    ""
+    ""
+    ""
+    015da0e6189d029fc8dafe862408dcabc30fda92fc68e1ad;
+  907dd1dff7dac5c9941d26d0c6eb14ad
+    56
+    ""
+    ""
+    ""
+    c932ffe01a259789c15ce089d5f8b7ea68f802ad4f95d278;
+  8f86edd1dc9268eeee533285a6ed810c
+    ""
+    9b
+    ""
+    ""
+    f00e7ec01693132f470761f98c38f8059d68abf0f24619cc;
+  689daaa9060d2d4b6003062365b0a543
+    ""
+    ""
+    64
+    10
+    fe5372d9b2db602ba2611ebc0100bce5c00bbed04792cb05;
+  c76c160f11896c4794846ecfa14a7130
+    c9f137120634c9519848a877ff77bf79192a5b50ade5d9cd
+    739a3d1f337f29549e6b0d27a4ba234085406a6136512061f7080cc07df0591d8fa21f2dd88374d8cde8e160ad10997a21635c6d62c9269029df3e6057acc87638f508046733d9ff
+    61cdbda3b3e9878731ebfedd4705e505da1435dceaa7b1cc49ae1d50c38201a894476b3f102b752eb9529533966f27043eb621b7f65b000961040ef2f9b2fc5fa450727a9b542cde
+    c59a7b60e5c4237f3c10e9cde0219aa4099ef7c0323b9b6a2b9c403327510e8966c95884af2892e93562b24c97711b08dcd6d3f96cd6ef4a4965ea599ce6483cc8cc7b356ed79aa4
+    5ce6dffcc1adf4308013c22d19323d83025c0f821b25bf4e;
+  52ebfda19d0ccc520f215eb57bb3a4f3
+    ebbbb18ac6c95a97a48030370c33d090c54215ab
+    d6b3ad54efc9a38378c5b93bf4f2aad2605faee2b03fb648e27fff
+    63102758fe2b69ac26afa3349829b94586306fed54154f8f28523c03d4de1600157846b710ee72807a2219bfb474fd71d891f24bb65d1563259f9eb53b571ea629c54d57dd2d42f70800df9fcbaca48b77
+    c82c8f3a0ce6dcaefdb53e2e831e9192559ce8c45c1967f5a9ef2f3ec68b94c9c2206a606c318d53ffe10e195a5d3ad88a866976d18550e9e13e6d3df6954b675eda0b433bc4bf78a46eb25038c4c1e1a6
+    e2203c3246cd4609749431f291149ec7359c6c1f98316738;
+  dba189196d1ebba10b0467cb9fc2712a
+    199e533fa9156308cdec3f768281e040a9b9a222bd689a
+    ef66f5306ceb0c6b08ac8b0a22260c571b4a42bb8fdb233bfa6a5cfb0bad7d95214ade49cb3b6f5fe8368131115c037ba323fe1dc8151784873f0eb5b647da6794c18b
+    5337685a96ed65b9aca338527ef19b09c063c46f88de9fd41e72d7b97e23e6eabdff3bcd211499268878dbf30f1dad89d4b9b12012e4713df46795630e7952d22bb02d7100b8b649377d20a8f0
+    e4e1aa2a9dc0ecadfab0d06a51cc52bc051eece169d640ea09e5ecbc5132389d823bf160bc0c3fd935be0a07b7350bf34aae3a6e93aa874aa8df85949f3ffce3ad63b63d972067f2ffb42da610
+    033ee0ffd59a68e6c64bcf376e1b4b5c3b55b704af3efd30;
+  83455b663e4ee1315f3c8f2aebfa921451dcd1af
+    ""
+    ""
+    ""
+    ""
+    11162ce42451687d06c7ea1d05f235a12f8c1dec59f7ffb9;
+  5813b70d30ce2f1fef6ef315d0798391805da08d
+    a3
+    ""
+    ""
+    ""
+    c9f80fcab02986639b9e1f4240582daf41b51a065bc6638b;
+  aefc5f8584b7c5e617669c0f16e39815d4e9cfce
+    ""
+    3e
+    ""
+    ""
+    64f584488df21b4e6a7cb5b54551516ed0585564f2605551;
+  d1ecdf3d264a7f16cb16c2e815f422cdf0c8e303
+    ""
+    ""
+    08
+    93
+    9dd3171ccac6312ff23949e0145b1f20c157eb70c7a100cf;
+  be3c31e6bc58c0b7cadcb658b970e47479a684b5
+    aefa69a4cd52147ed12ca986981a874498ad0abef8bc4fcb
+    70e27e98ef1f0446b42fb144d44b6d00f06dc188d472a784e0c6f21195a3b9f4ae985511265febd11c164720eef9eb1c8dd0b00951f284649016ed00456331854bc78bf43966eb0c
+    fa9138ddc39908445608fe95e81c2533e31c9c1a9851bc2810d858cbbc8424d126b807e6daa089c3f9099c5ffb824173d7634c04226f30cbb7f0e4a973a8cd190107314717a77456
+    2aa894b96eb2a06a0c601e1f32a5495741e7cd0d98ade2e22742931a96e86b1620f6bf3dc60e865f24029760aaac639a9628575a224c48cabb0b207a8c646da177f0180a9484003b
+    09e91a6ca2951ac43b2dc376bfb2459f9d6793f3fa6f19b0;
+  f3ff669c732b58db8f48af65f7cc9e3fb90e1721
+    b730374ffc9bc597f56ccbb2f294b38766fc69f6
+    a9f2c0945ffd505003cc0cae9ce021a5f1fa4ffa91544485f1a125
+    8b2b9b8f0911e32d65cc1770a18cbfe6effd1ff6778554acf1270485b203a3c1c4c967c0a458cb948bdd409b687fa3a6827b480aa3a4c84cef64f6c9b53bf8f957f4b03cf43e89957f9a3e8128f8743d16
+    2a34e82df940e666655df615cd9499c3f0cbcb42d214c38a86130abd270c3f2a1aeb290e30d3aa4ff7e5386ebe20a7140c329e02f8e79ae908e55b44b32201191c1061d525d815983d8a413460155e66a4
+    62d2e5ef4662b6a369d06431d0b42ad0e89280500ba3eba1;
+  687b7bb8deb9bd205b70e04c091d205cdad9e9a7
+    9b1abf91b0851e5ca605ac8451399587011677508a15dd
+    e524af3e2bee0646541a42c2ecccb44d65bad397abfaf529ee41cf9a05c7efedef3401539c51d2a90bbf7f1bfc338ab0ef5746ea8fdcccd213e33f7e8a5718fd250141
+    07c8e7d715a92add9589d1f5c054b2d983514605ec590294a319b9802068a9f891bc5ba5afabf8c3122d12d7ff3c41122d70d17d4569eaff59a332ba58d5d5589bfe079753ee1a957eb6d6699e
+    a5d9d4f2cfeaa5003728d73631498986caf5ecd07f21be526aaf0ba42f4e94ea4601b93fd94d3cba101bfd9f4092d31c37a787d481bcf6e0327ec520952a55bae4cfdff57b0b5aae071e182b89
+    bff9d687d796f186e930b3d45a7ef9da7cb6309fece26936;
+  6b7ea2725cb2dac07ecde95759ac46fee6dda7abc8ad68daac90cfe2
+    ""
+    ""
+    ""
+    ""
+    20e8e27fd32514b1b14272c20f0df7247f31f1f4a12f25fc;
+  2d2f1f2968cc42fa8b669ed3bb3542a9cf44bbc8c6254d980398bd94
+    e6
+    ""
+    ""
+    ""
+    ada7ffde4179f00a0efa887dc253ca41f00c318ed87aa2ee;
+  6eb4563d405e51881e99027b8ab9aea3ccf860b0009740763d96836c
+    ""
+    5f
+    ""
+    ""
+    378e18a38eba655e06b6f1e4d453e0afbdecb51191f33822;
+  87b95460938de1288c69d80ea12ff4bb5f069b8a2e86041c1b9fc214
+    ""
+    ""
+    e9
+    7e
+    ab0bb740c0dc8e10d72db5f5d9340a7f3f58205422105151;
+  ca2186ddf1f6a7a3aa7e740da967828e3604b35b15ffaa6c36800d96
+    45563a308ba60076817523bd2abf1261b089d8f23a9c2835
+    076a23faac2cdd67771cc667a8331f0a170b66283e4f834a06148f302c3973accd56f6f24e33958b8c2e2352fd61e4fa8fec816ac861a8b33779f09e7a10fc02a8f48afa3080ee11
+    9a52a9a817e4f2b94b0820cab383a8cffeea7c486315799dc875fba578c8ec4837898a92142b5b0677da1ac273117b45bcfff5d5f8b6fde2893232a9f81d14517ffae475f6b94a43
+    3f01e886e13d4af838c1a081adb8940ef6f24dabe3bd968a1c256dd08fc8c2aef84f7c389d6049f553750678d40e05e73c272540a02ae22d37e3ea42b38b7b659661fda031256ac8
+    4e5447fbd4d6ae6b948968a3944daafb7dbfb2298afa517e;
+  a67b3d380d2f9aaafe2dd721c0095c8808847689211450ba8095ffab
+    1eaadf66fd22ac1976063e113ab61f813e28a139
+    7a7974a1d7f4220c785fe426a5a0e80f678d404147842941feeffd
+    c2eb44dc8c0d5e8f444f7f4e0c893959b74dc23a7bb40e7e0013e5150686d2301b43a15a84e81d7f5cedaa49e2414ebf47970e560475cff206877de69146acc3ab6cf8556b7aa776945948d1b8834df219
+    0ce0e6e23e9b00a1925b4704d89f9ddc27e6184940419c3f4755b3a268f8ca0cefd898853791b75c9dfc09f72d8e3f1e76b68a7298131a24c15670b0f29150356b1dbb8281d2168fe870d5c2b13c7d515b
+    fc65f244ef465fab581fe151522e12881796968a24ec9f9c;
+  6c92ec1718dcdeee0d52d9539726d2810391b3f9d10c39b07ae8f08c
+    e7cee4758a386a9943e97dedfbe61e737882cd09c2b9a8
+    0f34c0fde11c2481b11fc76bfa4dbf710a9e544e0c536ca1e040f9ad5b04140d98edabe08485290a4d87d13b07398a1458c2c6b61dbdbc1cccada8c1a0a9aabb6c4e3c
+    3554f8fb1ef61614c270295dfc0ca6551ca4bdb75359f91cb9d921056b7de74fc9a9b37154ce6c0b396179d31f06a1dd5982cbc0d7cb23841da1ae8f4ae480cda98ad6cf2bacf6f9fd3f821330
+    c9e1cff17ba016005ee6bd63700c2d80ed5281dd7ccd14d19514e1a0ec2a2134d9bef71d92a8bb3c71c0d4622800300d21d16cd076593c492361e2a849e71f7e51d9d6fff53b61bba0e19fb25e
+    44aa54e465e68d39194421556344aea25bdc16f0a24c0685;
+  c43f3df6c2b3fac7cbcf9652
+    ""
+    ""
+    ""
+    ""
+    ae9a5d3998de53f84bca8beed16dac8064c3ea73d0c67765;
+  3d4723f91801325eb8553236
+    65
+    ""
+    ""
+    ""
+    f062371cf3f7082c2e21c136112bc6dd3eb3b455a5624800;
+  1c96788d73d192ee53b3f3eb
+    ""
+    d6
+    ""
+    ""
+    05013633667c00adb73c6442909065b53d12eb94db18480c;
+  6ddd98cedbe88e245de25b15
+    ""
+    ""
+    93
+    c6
+    78adfa0aabbe6558983554b3e73782cadcf950c21f27ee67;
+  b70f8601562d90a9b59ed034
+    a867642d25d54756fa5c47f16f64b837bb4926214211a1c6
+    96ba172010abb433922a22d9fd881519165eb9d85197a21cc34ac0d5ae7be8dbf98e4ffed2cf6b1372a5aa47b54fd9d70c70e117bf1cae71b3a56f0e7d839ea59cc783443d64f2ed
+    6a29b96856beca34fd6544bcf86b799e2a1681160ccf055f0fd3001da597a1406d465b7b1419ea51cf858f938f6daafbd656445a09898eaa96ffc3d1d2e31e4e34c94b8bfae64825
+    da005542936f792bc7fed255ba5d8c04b90fa64185338a24a954b79a7d05252230a1167ef6eb35d1281c1927ffab7b5c714321e03a01274c3bd3583e3ec84f7c56d60000e18242f7
+    2ed230cfba9714d0d3d35df936ec750a695fccd25539b46b;
+  ecd75a66d88eedb969ffe076
+    69845ebb7a24c69f13d099f47166edf54538e88f
+    bf433a7ff212085179e79771f6eee7283ab178ef2b800d7b969da0
+    5780ffc1ba78c70dda7a4ca2a25e771702fb1901ecfc8a959cb8e75079bb018ccc8c54f31b450e88f8e9002926ad0284c738f4cb0f58a1e34c8b15ad930c1b627235a2cb84241986c251f5b70be2367f04
+    85ed87687fca97cdf0ccfe1d4e0fbdd56e674a6ef5ebcbc4979f80e6f8ebdc85672d01db63bef05103c1327baa49d7e6e12854ce3680f52bde86c075ff5df02daf0db3e48b564a804cb3b657f982a27ff3
+    e37d522450d16ff30f15ffa74a0b894bfd33074c4ea06f44;
+  7265264e0da72efe8995e6c9
+    32a17eab511eddb8e4ba463c663035a6ae8a7a899e4279
+    d54d03f0e0f3e961dcfd40088d5be74088e4097efb0368c7e2f431ee6988cf2a0e9ebeb3de79c4f86c9e4fba61339d6d907eab7707ca48ff5ba1ae93d16225d469de57
+    47bc1addf5748729720a320fe14fd29cfc59314fe2079c0a2535ded56112d6e3d33dcf7c71cd7d130323794e3da84a9df69703a9caf02d2a8f57ac71e554a6850d55882f8c7ae6994fc8528bd1
+    0b9e340c141493f9676c99eaa36b0463639b3db40dce5e2bb48c3222a1b82595be0ae12890f61bdc22f71a07b8ad0136d395221c57e12ca7f8184d3adbf82497f5c6ac105b1545d433a9baf50f
+    b24035d9900bc75dc879617502f0f9891a2428fa9d6d472d;
+}