Orthogonal Matrices and Rotations in R 3
Worksheet by Frank Rooney
restart: with(LinearAlgebra): with(plots): with(plottools):
Warning, the name changecoords has been redefined
Warning, the assigned name arrow now has a global binding
Rotations in R3 corresponding to a given orthogonal matrix
An orthogonal matrix Q satisfies
Q.Q T = Q T .Q = I
The vector corresponding to the axis of rotation is left unchanged by the matrix in other words it is an eigenvector of Q with eigenvector 1.
Firstly let's generate a random orthogonal matrix
va := RandomVector(3):
vb := RandomVector(3):
vec1 := Normalize(va,Euclidean):
vc := vb - (vec1.vb)*vec1:
vec2 := Normalize(vc,Euclidean):
vec3 := CrossProduct(vec1,vec2):
Q := <vec1 | vec2 | vec3>;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USJRRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYlLUkkbXRkR0YlNiMtRiQ2JS1JJm1mcmFjR0YlNiotSSNtbkdGJTY5USM0NkYoRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRmNzNjlRJTIzMTlGKEYwRjNGNkZmc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZ3NGXG8vJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRmF0LyUpYmV2ZWxsZWRHRjhGYnFGZHEtRl9vNjNRMSZJbnZpc2libGVUaW1lcztGKEZib0Zlb0Znby9Gam9RJDBlbUYoL0ZdcEZqdEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUkmbXNxcnRHRiU2JS1GY3M2OVElMTU0NkYoRjBGM0Y2RmZzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZnc0Zcb0ZicUZkcS1GW3M2Iy1GJDYlLUZgczYqLUZjczY5USY1ODUwN0YoRjBGM0Y2RmZzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZnc0Zcby1GY3M2OVEsMTMwMjAzMjAwMTNGKEYwRjNGNkZmc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZ3NGXG9GXHRGX3RGYnRGZHRGYnFGZHFGZnQtRiQ2Iy1GX3U2JS1GY3M2OVErODY4MDIxMzM0MkYoRjBGM0Y2RmZzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZnc0Zcb0ZicUZkcS1GW3M2Iy1GJDYkLUZfbzYzUSomdW1pbnVzMDtGKEZbckZlb0Znb0ZpdEZbdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlLUZgczYqLUZjczY5USUzMzA3RihGMEYzRjZGZnNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmdzRlxvLUZjczY5USwyNjA0MDY0MDAyNkYoRjBGM0Y2RmZzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZnc0Zcb0ZcdEZfdEZidEZkdEZicUZkcUZmdC1GJDYlRl51RmZ0RmJ2LUZocjYlLUZbczYjLUYkNiRGW3ctRiQ2JS1GYHM2Ki1GY3M2OVEjMzFGKEYwRjNGNkZmc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZ3NGXG8tRmNzNjlRJTQ2MzhGKEYwRjNGNkZmc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZ3NGXG9GXHRGX3RGYnRGZHRGYnFGZHFGZnRGXHUtRltzNiMtRiQ2JS1GYHM2Ki1GY3M2OVEnMjQ5NzkxRihGMEYzRjZGZnNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmdzRlxvRmV3Rlx0Rl90RmJ0RmR0RmJxRmRxRmZ0RmB2LUZbczYjLUYkNiUtRmBzNiotRmNzNjlRJTI1ODVGKEYwRjNGNkZmc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZ3NGXG9GZXdGXHRGX3RGYnRGZHRGYnFGZHFGZnRGaHctRmhyNiUtRltzNiMtRiQ2JS1GYHM2Ki1GY3M2OVEjNjdGKEYwRjNGNkZmc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZ3NGXG9GZ3hGXHRGX3RGYnRGZHRGYnFGZHFGZnRGXHUtRltzNiMtRiQ2JEZbdy1GJDYlLUZgczYqLUZjczY5USY0NTEwMUYoRjBGM0Y2RmZzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZnc0Zcb0Zld0ZcdEZfdEZidEZkdEZicUZkcUZmdEZgdi1GW3M2Iy1GJDYlLUZgczYqLUZjczY5USU1NzM3RihGMEYzRjZGZnNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmdzRlxvRmV3Rlx0Rl90RmJ0RmR0RmJxRmRxRmZ0Rmh3LUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSJRR0YoLUknUlRBQkxFR0YoNiUiKDtbI1stSSdNQVRSSVhHRig2IzclNyUsJComIyIjWSIlPkIiIiIpIiVZOiNGaF1sIiIjRmhdbEZoXWwsJComIyImMiZlIiw4K0s/SSJGaF1sKSIrVUxAIW8pRltebEZoXWxGaF1sLCQqKCMiJTJMIixFK2tTZyNGaF1sRmldbEZoXWxGYl5sRmhdbCEiIjclLCQqJiMiI0oiJVFZRmhdbEZpXWxGaF1sRmlebCwkKiYjIicielwjRmhebEZoXWxGYl5sRmhdbEZoXWwsJCooIyIlJmUjRmhebEZoXWxGaV1sRmhdbEZiXmxGaF1sRmhdbDclLCQqJiMiI25GX19sRmhdbEZpXWxGaF1sRmhdbCwkKiYjIiYsXiVGaF5sRmhdbEZiXmxGaF1sRmlebCwkKigjIiVQZEZoXmxGaF1sRmldbEZoXWxGYl5sRmhdbEZoXWxJJ01hdHJpeEc2JCUqcHJvdGVjdGVkR0YqNyMtRmVgbDYjL0kkJWlkR0YoRl1dbA==
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGOi8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSkyRH5JbnB1dEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0
Just to check.
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGOi8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSkyRH5JbnB1dEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0
QT := Transpose(Q):
QT.Q; Q.QT;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiUtSSRtdGRHRiU2Iy1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRmRvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTLUZdbzYjLUZgbzY5USIwRihGYm9GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXnJGYHItRmpuNiVGYHJGXG9GYHItRmpuNiVGYHJGYHJGXG8tRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyMtSSdSVEFCTEVHRig2JSIoR3EjXC1JJ01BVFJJWEdGKDYjNyU3JSIiIiIiIUZgdDclRmB0Rl90RmB0NyVGYHRGYHRGX3RJJ01hdHJpeEc2JCUqcHJvdGVjdGVkR0YqNyMtRmN0NiMvSSQlaWRHRihGaXM=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiUtSSRtdGRHRiU2Iy1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRmRvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTLUZdbzYjLUZgbzY5USIwRihGYm9GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXnJGYHItRmpuNiVGYHJGXG9GYHItRmpuNiVGYHJGYHJGXG8tRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyMtSSdSVEFCTEVHRig2JSIoX0EnXC1JJ01BVFJJWEdGKDYjNyU3JSIiIiIiIUZgdDclRmB0Rl90RmB0NyVGYHRGYHRGX3RJJ01hdHJpeEc2JCUqcHJvdGVjdGVkR0YqNyMtRmN0NiMvSSQlaWRHRihGaXM=
Now the axis of rotation is the eigenvector corresponding to the eigenvalue 1.
EigQ := Eigenvectors (Q):
evalf(%);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtRiQ2JS1JI21vR0YlNjNRIltGKC8lJWZvcm1HUSdwcmVmaXhGKC8lJmZlbmNlR1EldHJ1ZUYoLyUqc2VwYXJhdG9yR1EmZmFsc2VGKC8lJ2xzcGFjZUdRLnRoaW5tYXRoc3BhY2VGKC8lJ3JzcGFjZUdGPS8lKXN0cmV0Y2h5R0Y3LyUqc3ltbWV0cmljR0Y6LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOi8lLm1vdmFibGVsaW1pdHNHRjovJSdhY2NlbnRHRjovJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lJXNpemVHUSMxMkYoLyUrZm9yZWdyb3VuZEdRKlswLDAsMjU1XUYoLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GKC1GJDYjLUknbXRhYmxlR0YlNiUtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUYkNiUtSSNtbkdGJTY5US0wLjc0MDM0NjYwOTBGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGVS8lJWJvbGRHRjovJSdpdGFsaWNHRjovJSp1bmRlcmxpbmVHRjovJSpzdWJzY3JpcHRHRjovJSxzdXBlcnNjcmlwdEdGOi8lK2ZvcmVncm91bmRHRlgvJStiYWNrZ3JvdW5kR0Zlbi8lJ29wYXF1ZUdGOi8lK2V4ZWN1dGFibGVHRjovJSlyZWFkb25seUdGNy8lKWNvbXBvc2VkR0Y6LyUqY29udmVydGVkR0Y6LyUraW1zZWxlY3RlZEdGOi8lLHBsYWNlaG9sZGVyR0Y6LyUwZm9udF9zdHlsZV9uYW1lR0ZSLyUqbWF0aGNvbG9yR0ZYLyUvbWF0aGJhY2tncm91bmRHRmVuLyUrZm9udGZhbWlseUdGaW8vJSxtYXRodmFyaWFudEdRJ25vcm1hbEYoLyUpbWF0aHNpemVHRlUtRi82M1EiK0YoL0YzUSZpbmZpeEYoL0Y2RjpGOC9GPFEwbWVkaXVtbWF0aHNwYWNlRigvRj9GXHMvRkFGOkZCRkRGR0ZKRkxGTkZQRlNGVkZZLUYkNiUtRmRvNjlRLTAuNjcyMjI1MzMyNkYoRmdvRmpvRlxwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmNyLUYvNjNRMSZJbnZpc2libGVUaW1lcztGKEZockZqckY4L0Y8USQwZW1GKC9GP0Zoc0Zec0ZCRkRGR0ZKRkxGTkZQRlNGVkZZLUZkbzY5USJJRihGZ29Gam9GXHBGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGY3ItRlxvNiMtRl9vNiMtRiQ2JUZjby1GLzYzUSgmbWludXM7RihGaHJGanJGOEZbc0Zdc0Zec0ZCRkRGR0ZKRkxGTkZQRlNGVkZZRl9zLUZcbzYjLUZfbzYjLUZkbzY5USMxLkYoRmdvRmpvRlxwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmNyLUYvNjNRIl1GKC9GM1EocG9zdGZpeEYoRjVGOEY7L0Y/UTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRkBGQkZERkdGSkZMRk5GUEZTRlZGWS1GLzYzUSIsRihGaHJGanIvRjlGN0Zncy9GP1EzdmVyeXRoaWNrbWF0aHNwYWNlRihGXnNGQkZERkdGSkZMRk5GUEZTRlZGWS1GJDYlRi4tRiQ2Iy1GaW42JS1GXG82JS1GX282Iy1GJDYmLUYvNjNRKiZ1bWludXMwO0YoRjJGanJGOEZnc0Zpc0Zec0ZCRkRGR0ZKRkxGTkZQRlNGVkZZLUZkbzY5US0wLjI2NjM2MzI5MTNGKEZnb0Zqb0ZccEZecEZgcEZicEZkcEZmcEZocEZqcEZccUZecUZgcUZicUZkcUZmcUZocUZqcUZcckZeckZgckZjckZlci1GJDYlLUZkbzY5USwxLjAzNDIwMzU4OUYoRmdvRmpvRlxwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmNyRmRzRmpzLUZfbzYjLUYkNiZGZnZGaXZGY3RGXHctRl9vNiMtRmRvNjlRLTAuNzcwNDE5NTc2OUYoRmdvRmpvRlxwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmNyLUZcbzYlLUZfbzYjLUYkNiZGZnYtRmRvNjlRLTAuNTI0MjAyNzgwMkYoRmdvRmpvRlxwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmNyRmN0LUYkNiUtRmRvNjlRLTAuNTI1NTEwMTMwNEYoRmdvRmpvRlxwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmNyRmRzRmpzLUZfbzYjLUYkNiZGZnZGYHhGZXJGY3gtRl9vNiMtRmRvNjlRLDEuNTE2MTg1MjE4RihGZ29Gam9GXHBGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGY3ItRlxvNiVGaHRGaHRGaHRGXXU3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3JC1JJ1JUQUJMRUdGKDYlIilDKlIlPi1JJ01BVFJJWEdGKDYjNyU3IywmJCIrITRtTVMoISM1IiIiKiYkIitFTERBbkZlekZmel4jRmZ6RmZ6RmZ6NyMsJkZjekZmekZneiEiIjcjJEZmeiIiISZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKC1Gank2JSIpXzAneSItRl56NiM3JTclLCYkIis4SGpqRUZlekZdW2wqJiQiKyplLlUuIiEiKkZmekZqekZmekZmeiwmRl9cbEZdW2xGYVxsRl1bbCQiK3BkPi94RmV6NyUsJiQiKy15LVVfRmV6Rl1bbComJCIrLzg1Yl9GZXpGZnpGanpGZnpGXVtsLCZGalxsRl1bbEZcXWxGZnokIis9Xz07OkZkXGw3JUZfW2xGX1tsRl9bbEknTWF0cml4R0ZjW2w3JC1GYVtsNiMvSSQlaWRHRihGXHotRmNdbDYjL0ZoXWxGaVts
The axis is the eigenvector corresponding to 1.(Note the complex eigenvalues are of the form cos \316\270 \302\261 i sin \316\270, with \316\270 the rotation angle)
A := DeleteColumn(EigQ[2],1..2):
B := <A[1,1],A[2,1],A[3,1]>:
Normalize(B,Euclidean):
axis1 := evalf(%);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USZheGlzMUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiUtRl9vNjNRIltGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZfci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUknbXRhYmxlR0YlNiUtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUkjbW5HRiU2OVEtMC4zOTA0OTk1OTY4RihGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby1GaHI2Iy1GW3M2Iy1GXnM2OVEtMC43Njg1MDI5NDgzRihGMEYzRjZGYXNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmJzRlxvLUZocjYjLUZbczYjLUZeczY5US0wLjUwNjg2NjEzOTdGKEYwRjNGNkZhc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GYnNGXG8tRl9vNjNRIl1GKC9GY29RKHBvc3RmaXhGKEZdckZnb0Zeci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGYXJGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JJmF4aXMxR0YoLUknUlRBQkxFR0YoNiUiKSlRbyk+LUknTUFUUklYR0YoNiM3JTcjJCIrb2YqXCFSISM1NyMkIiskW0hdbyhGXHY3IyQiKyhSaCdvXUZcdiZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZjdjYjL0kkJWlkR0YoRmR1
There is another way to find the axis of rotation. If w is the eigenvector of Q corresponding to 1 then
Q.w = w = QT .w so (Q - QT ).w = 0
or if q is the axial vector corresponding to Q - QT this means q x w = 0 or w is parallel to q
Qsk := Q - QT:
q := < Qsk[2,3],Qsk[3,1],Qsk[1,2]>:
Normalize(q,Euclidean):
axis := evalf(%);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVheGlzRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtSSNtbkdGJTY5US0wLjM5MDQ5OTU5NjdGKEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUZocjYjLUZbczYjLUZeczY5US0wLjc2ODUwMjk0NzhGKEYwRjNGNkZhc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GYnNGXG8tRmhyNiMtRltzNiMtRl5zNjlRLTAuNTA2ODY2MTM5M0YoRjBGM0Y2RmFzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZic0Zcby1GX282M1EiXUYoL0Zjb1EocG9zdGZpeEYoRl1yRmdvRl5yL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZhckZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkklYXhpc0dGKC1JJ1JUQUJMRUdGKDYlIidDbnQtSSdNQVRSSVhHRig2IzclNyMkIituZipcIVIhIzU3IyQiK3klSF1vKEZcdjcjJCIrJFJoJ29dRlx2JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRmN2NiMvSSQlaWRHRihGZHU=
To find the angle of rotation we rely on the invariance of the trace. A rotation about the z axis has the form
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYpLUkjbWlHRiQ2OVEkUm90RicvJSdmYW1pbHlHUSZBcmlhbEYnLyUlc2l6ZUdRIzEyRicvJSVib2xkR1EmZmFsc2VGJy8lJ2l0YWxpY0dRJXRydWVGJy8lKnVuZGVybGluZUdGNy8lKnN1YnNjcmlwdEdGNy8lLHN1cGVyc2NyaXB0R0Y3LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRicvJSdvcGFxdWVHRjcvJStleGVjdXRhYmxlR0Y3LyUpcmVhZG9ubHlHRjcvJSljb21wb3NlZEdGNy8lKmNvbnZlcnRlZEdGNy8lK2ltc2VsZWN0ZWRHRjcvJSxwbGFjZWhvbGRlckdGNy8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGJy8lKm1hdGhjb2xvckdGQy8lL21hdGhiYWNrZ3JvdW5kR0ZGLyUrZm9udGZhbWlseUdGMS8lLG1hdGh2YXJpYW50R1EnaXRhbGljRicvJSltYXRoc2l6ZUdGNC1JI21vR0YkNjNRMSZJbnZpc2libGVUaW1lcztGJy8lJWZvcm1HUSZpbmZpeEYnLyUmZmVuY2VHRjcvJSpzZXBhcmF0b3JHRjcvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYnLyUncnNwYWNlR0Zqby8lKXN0cmV0Y2h5R0Y3LyUqc3ltbWV0cmljR0Y3LyUobWF4c2l6ZUdRKWluZmluaXR5RicvJShtaW5zaXplR1EiMUYnLyUobGFyZ2VvcEdGNy8lLm1vdmFibGVsaW1pdHNHRjcvJSdhY2NlbnRHRjcvJTBmb250X3N0eWxlX25hbWVHRlcvJSVzaXplR0Y0LyUrZm9yZWdyb3VuZEdGQy8lK2JhY2tncm91bmRHRkYtRl5vNjNRIj1GJ0Zhb0Zkb0Zmb0Zob0ZbcEZdcEZfcEZhcEZkcEZncEZpcEZbcUZdcUZfcUZhcUZjcS1GIzYlLUYsNjlRIUYnL0YwUTBUaW1lc35OZXd+Um9tYW5GJ0YyRjVGOEY7Rj1GP0ZBRkRGR0ZJRktGTUZPRlFGU0ZVRlhGWi9GZ25GXnJGaG5GW28tRiM2JS1GXm82M1EiW0YnL0Zib1EncHJlZml4RicvRmVvRjpGZm8vRmlvUS50aGlubWF0aHNwYWNlRicvRlxwRmlyL0ZecEY6Rl9wRmFwRmRwRmdwRmlwRltxRl1xRl9xRmFxRmNxLUYjNiVGanEtSSdtdGFibGVHRiQ2JS1JJG10ckdGJDYlLUkkbXRkR0YkNiMtRiM2JUZqcS1GIzYnRmpxLUZebzYzUSRjb3NGJy9GYm9GXHJGZG9GZm8vRmlvUSQwZW1GJy9GXHBGYHRGXXBGX3BGYXBGZHBGZ3BGaXBGW3FGXXFGX3FGYXFGY3EtRl5vNjNRMCZBcHBseUZ1bmN0aW9uO0YnRmFvRmRvRmZvRl90RmF0Rl1wRl9wRmFwRmRwRmdwRmlwRltxRl1xRl9xRmFxRmNxLUkobWZlbmNlZEdGJDYjLUYsNjlRKCZ0aGV0YTtGJ0ZdckYyRjUvRjlGN0Y7Rj1GP0ZBRkRGR0ZJRktGTUZPRlFGU0ZVRlhGWkZfci9GaW5RJ25vcm1hbEYnRltvRmpxRmpxLUZlczYjLUYjNiUtRl5vNjNRKCZtaW51cztGJ0Zhb0Zkb0Zmb0Zob0ZbcEZdcEZfcEZhcEZkcEZncEZpcEZbcUZdcUZfcUZhcUZjcS1GIzYnRmpxLUZebzYzUSRzaW5GJ0ZedEZkb0Zmb0ZfdEZhdEZdcEZfcEZhcEZkcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZidEZldEZqcUZqcS1GZXM2Iy1JI21uR0YkNjlRIjBGJ0ZdckYyRjVGW3VGO0Y9Rj9GQUZERkdGSUZLRk1GT0ZRRlNGVUZYRlpGX3JGXHVGW28tRmJzNiUtRmVzNiMtRiM2JS1GLDY5RlxyRl1yRjJGNUY4RjtGPUY/L0ZCUSxbMjAwLDAsMjAwXUYnRkRGR0ZJRktGTUZPRlFGU0ZVL0ZZRml2RlpGX3JGaG5GW29GZXVGanFGZHNGanUtRmJzNiVGanVGanUtRmVzNiMtRl12NjlGZnBGXXJGMkY1Rlt1RjtGPUY/RkFGREZHRklGS0ZNRk9GUUZTRlVGWEZaRl9yRlx1RltvRmpxLUZebzYzUSJdRicvRmJvUShwb3N0Zml4RidGZ3JGZm9GaHIvRlxwUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYnRltzRl9wRmFwRmRwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmpxRmpxLUknbXNwYWNlR0YkNiYvJSdoZWlnaHRHUScwLjB+ZXhGJy8lJndpZHRoR1EnMC4wfmVtRicvJSZkZXB0aEdGXXgvJSpsaW5lYnJlYWtHUShuZXdsaW5lRidGanE= There is some orthogonal matrix P that rotates the z axis to the axis of rotation for Q.
Then Q = P. Rot . PT
Trace (Q) = Trace (P. Rot . PT ) =
Trace (PT .P. Rot) = Trace (Rot) = 1 + 2 cos(\316\270)
trQ := Trace(Q) :
arccos((trQ-1)/2):
theta = evalf(%);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USZ0aGV0YUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR0Y4LyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R1EldHJ1ZUYoLyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGQy8lL21hdGhiYWNrZ3JvdW5kR0ZGLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGQy8lK2JhY2tncm91bmRHRkYtSSNtbkdGJTY5US0wLjczNzIxMDUwMDRGKEYwRjNGNkY5RjtGPUY/RkFGREZHRklGS0ZORlBGUkZURlZGWUZlbkZnbkZpbkZcbzcjL0kmdGhldGFHRigkIisvXTVzdCEjNQ==
Finding the matrix corresponding to a given rotation in R3
The rotation matrix will depend only on the axis n and the angle of rotation \316\261 so it has to have the form
Q = A I + B n \342\212\227n + C N
where N is the skew symmetic matrix with n as its axial vector and A, B, and C are functions of \316\261. Using the facts that Q.n = n , Trace (Q) = 1 + 2 cos \316\261, and Q . Q T = I , we calculate that A = cos \316\261, B = 1 - cos \316\261 and C = sin \316\261
First get a random axis and random angle of rotation.
vec := RandomVector(3):
n := Normalize(vec,Euclidean):
nbyn := << n[1]*n[1],n[2]*n[1],n[3]*n[1]>|<n[1]*n[2],n[2]*n[2],n[3]*n[2]>|<n[1]*n[3],n[2]*n[3],n[3]*n[3]>>:
N := << 0,n[3],-n[2]>|<-n[3],0,n[1]>|<n[2],-n[1],0>>:
alpha := Pi/6:
Qrot := cos(alpha) * IdentityMatrix(3) + (1-cos(alpha))*nbyn+sin(alpha)*N;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVRcm90RigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYlLUkkbXRkR0YlNiMtRiQ2JS1GJDYlLUkmbWZyYWNHRiU2Ki1JI21uR0YlNjlRJDExM0YoRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRmVzNjlRJDQ2OEYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcby8lLmxpbmV0aGlja25lc3NHUSIxRigvJStkZW5vbWFsaWduR1EnY2VudGVyRigvJSludW1hbGlnbkdGY3QvJSliZXZlbGxlZEdGOEZicUZkcS1GX282M1ExJkludmlzaWJsZVRpbWVzO0YoRmJvRmVvRmdvL0Zqb1EkMGVtRigvRl1wRlx1Rl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSZtc3FydEdGJTYlLUZlczY5USIzRihGMEYzRjZGaHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmlzRlxvRmJxRmRxLUZfbzYzUSIrRihGYm9GZW9GZ28vRmpvUTBtZWRpdW1tYXRoc3BhY2VGKC9GXXBGanVGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRmJzNiotRmVzNjlRJDEyMUYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcby1GZXM2OVEkMjM0RihGMEYzRjZGaHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmlzRlxvRl50RmF0RmR0RmZ0RmJxRmRxLUZbczYjLUYkNictRmJzNiotRmVzNjlRIzc3RihGMEYzRjZGaHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmlzRlxvRmF2Rl50RmF0RmR0RmZ0RmJxRmRxLUZfbzYzUSgmbWludXM7RihGYm9GZW9GZ29GaXVGW3ZGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GYnM2KkZqdkZbdEZedEZhdEZkdEZmdEZicUZkcUZodEZedUZddy1GJDYlLUZiczYqLUZlczY5USIyRihGMEYzRjZGaHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmlzRlxvLUZlczY5USMzOUYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZedEZhdEZkdEZmdEZicUZkcUZodC1GJDYjLUZhdTYlLUZlczY5USMyNkYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZicUZkcS1GW3M2Iy1GJDYnLUZiczYqLUZlczY5USM0NEYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcby1GZXM2OVEkMTE3RihGMEYzRjZGaHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmlzRlxvRl50RmF0RmR0RmZ0RmJxRmRxRl13LUYkNiUtRmJzNiotRmVzNjlRIzIyRihGMEYzRjZGaHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmlzRlxvRl55Rl50RmF0RmR0RmZ0RmJxRmRxRmh0Rl51RmZ1LUYkNiUtRmJzNiotRmVzNjlRIjdGKEYwRjNGNkZoc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaXNGXG8tRmVzNjlRJDE1NkYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZedEZhdEZkdEZmdEZicUZkcUZodEZeeC1GaHI2JS1GW3M2Iy1GJDYnRmh2Rl13RmB3RmZ1RmR3LUZbczYjLUYkNiUtRiQ2JS1GYnM2Ki1GZXM2OVEkMTg1RihGMEYzRjZGaHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmlzRlxvRlt0Rl50RmF0RmR0RmZ0RmJxRmRxRmh0Rl51RmZ1LUZiczYqLUZlczY5USM0OUYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZhdkZedEZhdEZkdEZmdEZicUZkcS1GW3M2Iy1GJDYnLUZiczYqLUZlczY5USMyOEYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZeeUZedEZhdEZkdEZmdEZicUZkcUZddy1GJDYlLUZiczYqLUZlczY5USMxNEYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZeeUZedEZhdEZkdEZmdEZicUZkcUZodEZedUZddy1GJDYlLUZiczYqLUZlczY5USMxMUYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZfekZedEZhdEZkdEZmdEZicUZkcUZodEZeeC1GaHI2JS1GW3M2Iy1GJDYnRml4Rl13RmF5Rl13Rmh5LUZbczYjLUYkNidGXFxsRl13RmFcbEZmdUZoXGwtRltzNiMtRiQ2JS1GJDYlLUZiczYqLUZlczY5USM4NUYoRjBGM0Y2RmhzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpc0Zcb0ZhdkZedEZhdEZkdEZmdEZicUZkcUZodEZedUZmdS1GYnM2Ki1GZXM2OVEjMzJGKEYwRjNGNkZoc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaXNGXG9GXnlGXnRGYXRGZHRGZnRGYnFGZHEtRl9vNjNRIl1GKC9GY29RKHBvc3RmaXhGKEZdckZnb0Zeci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGYXJGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JJVFyb3RHRigtSSdSVEFCTEVHRig2JSIpc2lvPi1JJ01BVFJJWEdGKDYjNyU3JSwmKiYjIiQ4IiIkbyUiIiIpIiIkI0ZmYGwiIiNGZmBsRmZgbCMiJEAiIiRNI0ZmYGwsKCMiI3hGXWFsRmZgbComI0ZgYWxGZWBsRmZgbEZnYGxGZmBsISIiKiYjRmpgbCIjUkZmYGwpIiNFRmlgbEZmYGxGY2FsLCgjIiNXIiQ8IkZmYGwqJiMiI0FGXGJsRmZgbEZnYGxGZmBsRmNhbComIyIiKCIkYyJGZmBsRmdhbEZmYGxGZmBsNyUsKEZfYWxGZmBsRmFhbEZjYWxGZGFsRmZgbCwmKiYjIiQmPUZlYGxGZmBsRmdgbEZmYGxGZmBsIyIjXEZdYWxGZmBsLCgjIiNHRlxibEZmYGwqJiMiIzlGXGJsRmZgbEZnYGxGZmBsRmNhbComIyIjNkZjYmxGZmBsRmdhbEZmYGxGY2FsNyUsKEZqYWxGZmBsRl1ibEZjYWxGYGJsRmNhbCwoRl1jbEZmYGxGX2NsRmNhbEZiY2xGZmBsLCYqJiMiIyYpRl1hbEZmYGxGZ2BsRmZgbEZmYGwjIiNLRlxibEZmYGxJJ01hdHJpeEc2JCUqcHJvdGVjdGVkR0YqNyMtRl5kbDYjL0kkJWlkR0YoRltgbA==
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGOi8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSkyRH5JbnB1dEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0
Check this has the correct properties.
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGOi8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSkyRH5JbnB1dEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0 vec; Qrot.vec; arccos((Trace(Qrot)-1)/2);
Qrot . Transpose(Qrot);simplify(%);
Transpose(Qrot).Qrot;simplify(%);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiMtSSRtdGRHRiU2Iy1JI21uR0YlNjlRIzIyRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHRlMvJSVib2xkR0Y4LyUnaXRhbGljR0Y4LyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR0ZWLyUrYmFja2dyb3VuZEdGWS8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGNS8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZQLyUqbWF0aGNvbG9yR0ZWLyUvbWF0aGJhY2tncm91bmRHRlkvJStmb250ZmFtaWx5R0Zlby8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGUy1Gam42Iy1GXW82Iy1GYG82OVEjMTRGKEZjb0Zmb0Zob0Zqb0ZccEZecEZgcEZicEZkcEZmcEZocEZqcEZccUZecUZgcUZicUZkcUZmcUZocUZqcUZcckZfci1Gam42Iy1GXW82Iy1GYG82OVEjMTZGKEZjb0Zmb0Zob0Zqb0ZccEZecEZgcEZicEZkcEZmcEZocEZqcEZccUZecUZgcUZicUZkcUZmcUZocUZqcUZcckZfci1GLTYzUSJdRigvRjFRKHBvc3RmaXhGKEYzRjZGOS9GPVEydmVyeXRoaW5tYXRoc3BhY2VGKEY+RkBGQkZFRkhGSkZMRk5GUUZURlc3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iy1JJ1JUQUJMRUdGKDYlIic/bnotSSdNQVRSSVhHRig2IzclNyMiI0E3IyIjOTcjIiM7JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRmp0NiMvSSQlaWRHRihGX3Q=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiMtSSRtdGRHRiU2Iy1JI21uR0YlNjlRIzIyRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHRlMvJSVib2xkR0Y4LyUnaXRhbGljR0Y4LyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR0ZWLyUrYmFja2dyb3VuZEdGWS8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGNS8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZQLyUqbWF0aGNvbG9yR0ZWLyUvbWF0aGJhY2tncm91bmRHRlkvJStmb250ZmFtaWx5R0Zlby8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGUy1Gam42Iy1GXW82Iy1GYG82OVEjMTRGKEZjb0Zmb0Zob0Zqb0ZccEZecEZgcEZicEZkcEZmcEZocEZqcEZccUZecUZgcUZicUZkcUZmcUZocUZqcUZcckZfci1Gam42Iy1GXW82Iy1GYG82OVEjMTZGKEZjb0Zmb0Zob0Zqb0ZccEZecEZgcEZicEZkcEZmcEZocEZqcEZccUZecUZgcUZicUZkcUZmcUZocUZqcUZcckZfci1GLTYzUSJdRigvRjFRKHBvc3RmaXhGKEYzRjZGOS9GPVEydmVyeXRoaW5tYXRoc3BhY2VGKEY+RkBGQkZFRkhGSkZMRk5GUUZURlc3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iy1JJ1JUQUJMRUdGKDYlIiklPSMqKj0tSSdNQVRSSVhHRig2IzclNyMiI0E3IyIjOTcjIiM7JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRmp0NiMvSSQlaWRHRihGX3Q=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEiMUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR0Y7LyUqdW5kZXJsaW5lR0Y7LyUqc3Vic2NyaXB0R0Y7LyUsc3VwZXJzY3JpcHRHRjsvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y7LyUrZXhlY3V0YWJsZUdGOy8lKXJlYWRvbmx5R1EldHJ1ZUYoLyUpY29tcG9zZWRHRjsvJSpjb252ZXJ0ZWRHRjsvJStpbXNlbGVjdGVkR0Y7LyUscGxhY2Vob2xkZXJHRjsvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRi8lL21hdGhiYWNrZ3JvdW5kR0ZJLyUrZm9udGZhbWlseUdGNS8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGOC1GMDY5USI2RihGM0Y2RjlGPEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuRlxvRl9vLyUubGluZXRoaWNrbmVzc0dRIjFGKC8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGKC8lKW51bWFsaWduR0Zpby8lKWJldmVsbGVkR0Y7LyUrZm9yZWdyb3VuZEdGRi8lK2JhY2tncm91bmRHRkktSSNtb0dGJTYzUTEmSW52aXNpYmxlVGltZXM7RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y7LyUqc2VwYXJhdG9yR0Y7LyUnbHNwYWNlR1EkMGVtRigvJSdyc3BhY2VHRl9xLyUpc3RyZXRjaHlHRjsvJSpzeW1tZXRyaWNHRjsvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHRjIvJShsYXJnZW9wR0Y7LyUubW92YWJsZWxpbWl0c0dGOy8lJ2FjY2VudEdGOy8lMGZvbnRfc3R5bGVfbmFtZUdGZW4vJSVzaXplR0Y4Rl5wRmBwLUYkNiMtSSNtaUdGJTY5USNQaUYoRjNGNkY5RjxGPkZARkJGREZHRkpGTEZORlFGU0ZVRldGWUZmbkZobkZqbkZcb0ZfbzcjLCQqJiMiIiIiIidGX3NJI1BpRyUqcHJvdGVjdGVkR0Zfc0Zfcw==
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiUtSSRtdGRHRiU2Iy1GJDYnLUYkNiMtSSVtc3VwR0YlNiUtRiQ2JS1GLTYzUSIoRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZRRlRGVy1GJDYlLUYkNiUtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEkMTEzRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHRlMvJSVib2xkR0Y4LyUnaXRhbGljR0Y4LyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR0ZWLyUrYmFja2dyb3VuZEdGWS8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGNS8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZQLyUqbWF0aGNvbG9yR0ZWLyUvbWF0aGJhY2tncm91bmRHRlkvJStmb250ZmFtaWx5R0ZocC8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGUy1GY3A2OVEkNDY4RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMvJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRlx0LyUpYmV2ZWxsZWRHRjhGVEZXLUYtNjNRMSZJbnZpc2libGVUaW1lcztGKC9GMVEmaW5maXhGKC9GNEY4RjYvRjpRJDBlbUYoL0Y9Rmh0L0Y/RjhGQEZCRkVGSEZKRkxGTkZRRlRGVy1GJDYjLUkmbXNxcnRHRiU2JS1GY3A2OVEiM0YoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRlRGVy1GLTYzUSIrRihGZHRGZnRGNi9GOlEwbWVkaXVtbWF0aHNwYWNlRigvRj1GZ3VGanRGQEZCRkVGSEZKRkxGTkZRRlRGVy1GYHA2Ki1GY3A2OVEkMTIxRihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMtRmNwNjlRJDIzNEYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmdzRmpzRl10Rl90RlRGVy1GLTYzUSIpRigvRjFRKHBvc3RmaXhGKEYzRjZGOS9GPVEydmVyeXRoaW5tYXRoc3BhY2VGKEY+RkBGQkZFRkhGSkZMRk5GUUZURlctRmNwNjlRIjJGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zicy8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRihGY3UtRiQ2Iy1GZG82JS1GJDYlRmhvLUYkNictRmBwNiotRmNwNjlRIzc3RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXnZGZ3NGanNGXXRGX3RGVEZXLUYtNjNRKCZtaW51cztGKEZkdEZmdEY2RmZ1Rmh1Rmp0RkBGQkZFRkhGSkZMRk5GUUZURlctRiQ2JS1GYHA2KkZod0Zkc0Znc0Zqc0ZddEZfdEZURldGYXRGW3VGW3gtRiQ2JS1GYHA2KkZodi1GY3A2OVEjMzlGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zic0Znc0Zqc0ZddEZfdEZURldGYXQtRiQ2Iy1GXnU2JS1GY3A2OVEjMjZGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zic0ZURldGYXZGaHZGW3dGY3UtRiQ2Iy1GZG82JS1GJDYlRmhvLUYkNictRmBwNiotRmNwNjlRIzQ0RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMtRmNwNjlRJDExN0YoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmdzRmpzRl10Rl90RlRGV0ZbeC1GJDYlLUZgcDYqLUZjcDY5USMyMkYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRl16RmdzRmpzRl10Rl90RlRGV0ZhdEZbdUZjdS1GJDYlLUZgcDYqLUZjcDY5USI3RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMtRmNwNjlRJDE1NkYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmdzRmpzRl10Rl90RlRGV0ZhdEZpeEZhdkZodkZbdy1GXW82Iy1GJDYnLUYkNiVGZm9GYXQtRiQ2JUZoby1GJDYnRmZ3Rlt4Rl54RmN1RmJ4RmF2RmN1LUYkNiVGYndGYXQtRiQ2JUZoby1GJDYlLUYkNiUtRmBwNiotRmNwNjlRJDE4NUYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmRzRmdzRmpzRl10Rl90RlRGV0ZhdEZbdUZjdS1GYHA2Ki1GY3A2OVEjNDlGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zic0ZedkZnc0Zqc0ZddEZfdEZURldGYXZGY3UtRiQ2JUZkeUZhdC1GJDYlRmhvLUYkNictRmBwNiotRmNwNjlRIzI4RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXXpGZ3NGanNGXXRGX3RGVEZXRlt4LUYkNiUtRmBwNiotRmNwNjlRIzE0RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXXpGZ3NGanNGXXRGX3RGVEZXRmF0Rlt1Rlt4LUYkNiUtRmBwNiotRmNwNjlRIzExRihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXltsRmdzRmpzRl10Rl90RlRGV0ZhdEZpeEZhdi1GXW82Iy1GJDYnLUYkNiVGZm9GYXQtRiQ2JUZoby1GJDYnRmh5Rlt4RmB6Rlt4Rmd6RmF2RmN1LUYkNiVGYndGYXQtRiQ2JUZoby1GJDYnRmNdbEZbeEZoXWxGY3VGX15sRmF2RmN1LUYkNiVGZHlGYXQtRiQ2JUZoby1GJDYlLUYkNiUtRmBwNiotRmNwNjlRIzg1RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXnZGZ3NGanNGXXRGX3RGVEZXRmF0Rlt1RmN1LUZgcDYqLUZjcDY5USMzMkYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRl16RmdzRmpzRl10Rl90RlRGV0Zhdi1Gam42JUZhW2wtRl1vNiMtRiQ2Jy1GJDYjLUZkbzYlRmdbbEZodkZbd0ZjdS1GJDYjLUZkbzYlRl1cbEZodkZbd0ZjdS1GJDYjLUZkbzYlRl9dbEZodkZbdy1GXW82Iy1GJDYnLUYkNiVGZ1tsRmF0RlxfbEZjdS1GJDYlRl1cbEZhdEZiX2xGY3UtRiQ2JUZfXWxGYXRGaF9sLUZqbjYlRmZebEZqYWwtRl1vNiMtRiQ2Jy1GJDYjLUZkbzYlRlxfbEZodkZbd0ZjdS1GJDYjLUZkbzYlRmJfbEZodkZbd0ZjdS1GJDYjLUZkbzYlRmhfbEZodkZbdy1GLTYzUSJdRihGZHZGM0Y2RjlGZnZGPkZARkJGRUZIRkpGTEZORlFGVEZXNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyMtSSdSVEFCTEVHRig2JSIpIyp6KnkiLUknTUFUUklYR0YoNiM3JTclLCgqJCksJiomIyIkOCIiJG8lIiIiKSIiJCNGYGVsIiIjRmBlbEZgZWwjIiRAIiIkTSNGYGVsRmRlbEZgZWxGYGVsKiQpLCgjIiN4RmdlbEZgZWwqJiNGXGZsRl9lbEZgZWxGYWVsRmBlbCEiIiomI0ZkZWwiI1JGYGVsKSIjRUZjZWxGYGVsRl9mbEZkZWxGYGVsRmBlbCokKSwoIyIjVyIkPCJGYGVsKiYjIiNBRmpmbEZgZWxGYWVsRmBlbEZfZmwqJiMiIigiJGMiRmBlbEZjZmxGYGVsRmBlbEZkZWxGYGVsRmBlbCwoKiZGW2VsRmBlbCwoRltmbEZgZWxGXWZsRl9mbEZgZmxGYGVsRmBlbEZgZWwqJkZqZWxGYGVsLCYqJiMiJCY9Rl9lbEZgZWxGYWVsRmBlbEZgZWwjIiNcRmdlbEZgZWxGYGVsRmBlbComRmdmbEZgZWwsKCMiI0dGamZsRmBlbComIyIjOUZqZmxGYGVsRmFlbEZgZWxGX2ZsKiYjIiM2RmFnbEZgZWxGY2ZsRmBlbEZfZmxGYGVsRmBlbCwoKiZGW2VsRmBlbCwoRmhmbEZgZWxGW2dsRl9mbEZeZ2xGX2ZsRmBlbEZgZWwqJkZqZWxGYGVsLChGXmhsRmBlbEZgaGxGX2ZsRmNobEZgZWxGYGVsRmBlbComRmdmbEZgZWwsJiomIyIjJilGZ2VsRmBlbEZhZWxGYGVsRmBlbCMiI0tGamZsRmBlbEZgZWxGYGVsNyVGYmdsLCgqJClGZGdsRmRlbEZgZWxGYGVsKiQpRmZnbEZkZWxGYGVsRmBlbCokKUZdaGxGZGVsRmBlbEZgZWwsKComRmRnbEZgZWxGaGhsRmBlbEZgZWwqJkZmZ2xGYGVsRmpobEZgZWxGYGVsKiZGXWhsRmBlbEZcaWxGYGVsRmBlbDclRmZobEZqaWwsKCokKUZoaGxGZGVsRmBlbEZgZWwqJClGamhsRmRlbEZgZWxGYGVsKiQpRlxpbEZkZWxGYGVsRmBlbEknTWF0cml4RzYkJSpwcm90ZWN0ZWRHRio3Iy1GZmpsNiMvSSQlaWRHRihGYmRs
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiUtSSRtdGRHRiU2Iy1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRmRvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTLUZdbzYjLUZgbzY5USIwRihGYm9GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXnJGYHItRmpuNiVGYHJGXG9GYHItRmpuNiVGYHJGYHJGXG8tRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyMtSSdSVEFCTEVHRig2JSIoJVFwRC1JJ01BVFJJWEdGKDYjNyU3JSIiIiIiIUZgdDclRmB0Rl90RmB0NyVGYHRGYHRGX3RJJ01hdHJpeEc2JCUqcHJvdGVjdGVkR0YqNyMtRmN0NiMvSSQlaWRHRihGaXM=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiUtSSRtdGRHRiU2Iy1GJDYnLUYkNiMtSSVtc3VwR0YlNiUtRiQ2JS1GLTYzUSIoRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZRRlRGVy1GJDYlLUYkNiUtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEkMTEzRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHRlMvJSVib2xkR0Y4LyUnaXRhbGljR0Y4LyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR0ZWLyUrYmFja2dyb3VuZEdGWS8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGNS8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZQLyUqbWF0aGNvbG9yR0ZWLyUvbWF0aGJhY2tncm91bmRHRlkvJStmb250ZmFtaWx5R0ZocC8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGUy1GY3A2OVEkNDY4RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMvJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRlx0LyUpYmV2ZWxsZWRHRjhGVEZXLUYtNjNRMSZJbnZpc2libGVUaW1lcztGKC9GMVEmaW5maXhGKC9GNEY4RjYvRjpRJDBlbUYoL0Y9Rmh0L0Y/RjhGQEZCRkVGSEZKRkxGTkZRRlRGVy1GJDYjLUkmbXNxcnRHRiU2JS1GY3A2OVEiM0YoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRlRGVy1GLTYzUSIrRihGZHRGZnRGNi9GOlEwbWVkaXVtbWF0aHNwYWNlRigvRj1GZ3VGanRGQEZCRkVGSEZKRkxGTkZRRlRGVy1GYHA2Ki1GY3A2OVEkMTIxRihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMtRmNwNjlRJDIzNEYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmdzRmpzRl10Rl90RlRGVy1GLTYzUSIpRigvRjFRKHBvc3RmaXhGKEYzRjZGOS9GPVEydmVyeXRoaW5tYXRoc3BhY2VGKEY+RkBGQkZFRkhGSkZMRk5GUUZURlctRmNwNjlRIjJGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zicy8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRihGY3UtRiQ2Iy1GZG82JS1GJDYlRmhvLUYkNictRmBwNiotRmNwNjlRIzc3RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXnZGZ3NGanNGXXRGX3RGVEZXLUYtNjNRKCZtaW51cztGKEZkdEZmdEY2RmZ1Rmh1Rmp0RkBGQkZFRkhGSkZMRk5GUUZURlctRiQ2JS1GYHA2KkZod0Zkc0Znc0Zqc0ZddEZfdEZURldGYXRGW3VGY3UtRiQ2JS1GYHA2KkZodi1GY3A2OVEjMzlGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zic0Znc0Zqc0ZddEZfdEZURldGYXQtRiQ2Iy1GXnU2JS1GY3A2OVEjMjZGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zic0ZURldGYXZGaHZGW3dGY3UtRiQ2Iy1GZG82JS1GJDYlRmhvLUYkNictRmBwNiotRmNwNjlRIzQ0RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMtRmNwNjlRJDExN0YoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmdzRmpzRl10Rl90RlRGV0ZbeC1GJDYlLUZgcDYqLUZjcDY5USMyMkYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRl16RmdzRmpzRl10Rl90RlRGV0ZhdEZbdUZbeC1GJDYlLUZgcDYqLUZjcDY5USI3RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnMtRmNwNjlRJDE1NkYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmdzRmpzRl10Rl90RlRGV0ZhdEZpeEZhdkZodkZbdy1GXW82Iy1GJDYnLUYkNiVGZm9GYXQtRiQ2JUZoby1GJDYnRmZ3Rlt4Rl54Rlt4RmJ4RmF2RmN1LUYkNiVGYndGYXQtRiQ2JUZoby1GJDYlLUYkNiUtRmBwNiotRmNwNjlRJDE4NUYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRmRzRmdzRmpzRl10Rl90RlRGV0ZhdEZbdUZjdS1GYHA2Ki1GY3A2OVEjNDlGKEZmcEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZhckZjckZlckZnckZpckZbc0Zdc0Zfc0Zic0ZedkZnc0Zqc0ZddEZfdEZURldGYXZGY3UtRiQ2JUZkeUZhdC1GJDYlRmhvLUYkNictRmBwNiotRmNwNjlRIzI4RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXXpGZ3NGanNGXXRGX3RGVEZXRlt4LUYkNiUtRmBwNiotRmNwNjlRIzE0RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXXpGZ3NGanNGXXRGX3RGVEZXRmF0Rlt1RmN1LUYkNiUtRmBwNiotRmNwNjlRIzExRihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXltsRmdzRmpzRl10Rl90RlRGV0ZhdEZpeEZhdi1GXW82Iy1GJDYnLUYkNiVGZm9GYXQtRiQ2JUZoby1GJDYnRmh5Rlt4RmB6RmN1Rmd6RmF2RmN1LUYkNiVGYndGYXQtRiQ2JUZoby1GJDYnRmNdbEZbeEZoXWxGW3hGX15sRmF2RmN1LUYkNiVGZHlGYXQtRiQ2JUZoby1GJDYlLUYkNiUtRmBwNiotRmNwNjlRIzg1RihGZnBGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYXJGY3JGZXJGZ3JGaXJGW3NGXXNGX3NGYnNGXnZGZ3NGanNGXXRGX3RGVEZXRmF0Rlt1RmN1LUZgcDYqLUZjcDY5USMzMkYoRmZwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmFyRmNyRmVyRmdyRmlyRltzRl1zRl9zRmJzRl16RmdzRmpzRl10Rl90RlRGV0Zhdi1Gam42JUZhW2wtRl1vNiMtRiQ2Jy1GJDYjLUZkbzYlRmdbbEZodkZbd0ZjdS1GJDYjLUZkbzYlRl1cbEZodkZbd0ZjdS1GJDYjLUZkbzYlRl9dbEZodkZbdy1GXW82Iy1GJDYnLUYkNiVGZ1tsRmF0RlxfbEZjdS1GJDYlRl1cbEZhdEZiX2xGY3UtRiQ2JUZfXWxGYXRGaF9sLUZqbjYlRmZebEZqYWwtRl1vNiMtRiQ2Jy1GJDYjLUZkbzYlRlxfbEZodkZbd0ZjdS1GJDYjLUZkbzYlRmJfbEZodkZbd0ZjdS1GJDYjLUZkbzYlRmhfbEZodkZbdy1GLTYzUSJdRihGZHZGM0Y2RjlGZnZGPkZARkJGRUZIRkpGTEZORlFGVEZXNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyMtSSdSVEFCTEVHRig2JSIob1hwKC1JJ01BVFJJWEdGKDYjNyU3JSwoKiQpLCYqJiMiJDgiIiRvJSIiIikiIiQjRmBlbCIiI0ZgZWxGYGVsIyIkQCIiJE0jRmBlbEZkZWxGYGVsRmBlbCokKSwoIyIjeEZnZWxGYGVsKiYjRlxmbEZfZWxGYGVsRmFlbEZgZWwhIiIqJiNGZGVsIiNSRmBlbCkiI0VGY2VsRmBlbEZgZWxGZGVsRmBlbEZgZWwqJCksKCMiI1ciJDwiRmBlbComIyIjQUZqZmxGYGVsRmFlbEZgZWxGX2ZsKiYjIiIoIiRjIkZgZWxGY2ZsRmBlbEZfZmxGZGVsRmBlbEZgZWwsKComRltlbEZgZWwsKEZbZmxGYGVsRl1mbEZfZmxGYGZsRl9mbEZgZWxGYGVsKiZGamVsRmBlbCwmKiYjIiQmPUZfZWxGYGVsRmFlbEZgZWxGYGVsIyIjXEZnZWxGYGVsRmBlbEZgZWwqJkZnZmxGYGVsLCgjIiNHRmpmbEZgZWwqJiMiIzlGamZsRmBlbEZhZWxGYGVsRl9mbComIyIjNkZhZ2xGYGVsRmNmbEZgZWxGYGVsRmBlbEZgZWwsKComRltlbEZgZWwsKEZoZmxGYGVsRltnbEZfZmxGXmdsRmBlbEZgZWxGYGVsKiZGamVsRmBlbCwoRl5obEZgZWxGYGhsRl9mbEZjaGxGX2ZsRmBlbEZgZWwqJkZnZmxGYGVsLCYqJiMiIyYpRmdlbEZgZWxGYWVsRmBlbEZgZWwjIiNLRmpmbEZgZWxGYGVsRmBlbDclRmJnbCwoKiQpRmRnbEZkZWxGYGVsRmBlbCokKUZmZ2xGZGVsRmBlbEZgZWwqJClGXWhsRmRlbEZgZWxGYGVsLCgqJkZkZ2xGYGVsRmhobEZgZWxGYGVsKiZGZmdsRmBlbEZqaGxGYGVsRmBlbComRl1obEZgZWxGXGlsRmBlbEZgZWw3JUZmaGxGamlsLCgqJClGaGhsRmRlbEZgZWxGYGVsKiQpRmpobEZkZWxGYGVsRmBlbCokKUZcaWxGZGVsRmBlbEZgZWxJJ01hdHJpeEc2JCUqcHJvdGVjdGVkR0YqNyMtRmZqbDYjL0kkJWlkR0YoRmJkbA==
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiUtSSRtdGRHRiU2Iy1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRmRvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTLUZdbzYjLUZgbzY5USIwRihGYm9GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXnJGYHItRmpuNiVGYHJGXG9GYHItRmpuNiVGYHJGYHJGXG8tRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyMtSSdSVEFCTEVHRig2JSIpS3c3PS1JJ01BVFJJWEdGKDYjNyU3JSIiIiIiIUZgdDclRmB0Rl90RmB0NyVGYHRGYHRGX3RJJ01hdHJpeEc2JCUqcHJvdGVjdGVkR0YqNyMtRmN0NiMvSSQlaWRHRihGaXM=
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGOi8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSkyRH5JbnB1dEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0