diff --git a/README.md b/README.md
index 0fb8d7c5b287b6b6093cafd8dd9b8762fb053d56..d453440e210eab928e4d9092a64c1045d28f45c1 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 Interactive jupyter notebook widget to calculate transmission zone plate grating (TZPG, also known as beam splitting off-axis zone plate) beam sizes and position at the sample and detector planes for the SCS instrument.
 
-![TZPGcalc widget](example/TZPGcalc.png "TZPGcalc widget")
+![TZPGcalc widget](doc/source/TZPGcalc.png "TZPGcalc widget")
 
 The so far implemented features are:
 *  calculates geometric beam propagation for diffracted beams by the grating (1st, -1st and 0th order)
diff --git a/TZPGcalc.py b/TZPGcalc.py
deleted file mode 100644
index 567d5914bb7934571f05b8a397f7000d695bdba0..0000000000000000000000000000000000000000
--- a/TZPGcalc.py
+++ /dev/null
@@ -1,606 +0,0 @@
-# -*- coding: utf-8 -*-
-""" TZPG simple calculator for SCS.
-
-    Interactive widget to calculate beam sizes and position at the sample and
-    detector planes for the SCS instrument.
-
-    Copyright (2019) SCS Team.
-"""
-
-import numpy as np
-import matplotlib.pyplot as plt
-from matplotlib.patches import Rectangle, Polygon
-from matplotlib.colors import hsv_to_rgb
-
-import ipywidgets as widgets
-from ipywidgets import HBox, VBox, Layout
-from IPython.display import display
-
-# zone plate focal length
-F0 = 250*1e-3 # [m]
-
-# Z position of the zone plate optic from the first interaction point (sample Z stage at 0 mm)
-Z0 = 230*1e-3 # [m]
-
-# zone plate nominal focal sorthened by the KBS focusing
-d = 3.3 - Z0 # distance between HFM and TZPG
-f1 = 7.3 # HFM focus 2 m behind second interaction point
-F = F0*(d-f1)/(d-f1-F0)
-KBS_F = f1 - d # KBS focus distance from TZPG
-
-# number of membrane to show
-SampleN = 7
-
-TZPG_db = {
-    'Custom': {
-        'design_nrj': 860,
-        'TZPGwH': 1,
-        'TZPGwV': 1,
-        'TZPGoffaxis': 0.75,
-        'grating': 3.8},
-    'O': {
-        'design_nrj': 530,
-        'TZPGwH': 0.8,
-        'TZPGwV': 0.8,
-        'TZPGoffaxis': 0.55,
-        'grating': 3.1},
-    'Fe': {
-        'design_nrj': 715,
-        'TZPGwH': 0.8,
-        'TZPGwV': 0.8,
-        'TZPGoffaxis': 0.55,
-        'grating': 3.1},
-    'Co': {
-        'design_nrj': 785,
-        'TZPGwH': 0.8,
-        'TZPGwV': 0.8,
-        'TZPGoffaxis': 0.55,
-        'grating': 3.1},
-    'Ni': {
-        'design_nrj': 860,
-        'TZPGwH': 0.8,
-        'TZPGwV': 0.8,
-        'TZPGoffaxis': 0.55,
-        'grating': 3.1},
-    'Cu': {
-        'design_nrj': 927,
-        'TZPGwH': 0.8,
-        'TZPGwV': 0.8,
-        'TZPGoffaxis': 0.55,
-        'grating': 3.1},
-    'Gd': {
-        'design_nrj': 1210,
-        'TZPGwH': 0.8,
-        'TZPGwV': 0.8,
-        'TZPGoffaxis': 0.55,
-        'grating': 3.1},
-}
-
-class TZPGcalc():
-    def __init__(self):
-        self.initFig()
-        self.initWidgets()
-        self.UpdateFig()
-        display(self.control)
-
-    def initFig(self):
-        """ Creates a figure for the sample plane and detector plane images with all necessary drawings.
-        """
-
-        plt.close('TZPGcalc')
-        fig, (self.ax_sam, self.ax_det) = plt.subplots(1, 2, num='TZPGcalc', figsize=(6,3))
-
-        # display scale
-        self.scale = 1e3 # displayed distances in [mm]
-
-        self.ax_sam.set_title('Sample plane')
-        self.ax_det.set_title('Detector plane')
-
-        self.ax_sam.set_aspect('equal')
-        self.ax_det.set_aspect('equal')
-        self.ax_sam.set_xlim([-2, 2])
-        self.ax_sam.set_ylim([-2, 2])
-        self.ax_det.set_xlim([-35, 35])
-        self.ax_det.set_ylim([-20, 50])
-
-        # red and blue shifted color of the beams
-        c_rr = hsv_to_rgb([0/360, 50/100, 100/100])
-        c_rb = hsv_to_rgb([40/360, 50/100, 100/100])
-        c_gr = hsv_to_rgb([95/360, 60/100, 100/100])
-        c_gb = hsv_to_rgb([145/360, 60/100, 100/100])
-
-        self.samBeamsL = {
-            'F0G0': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G-1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F1G0': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor=c_rr, alpha=0.7, lw=None)),
-            'F1G1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None)),
-            'F1G-1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None))
-            }
-
-        self.detBeamsL = {
-            'F0G0': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G-1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F1G0': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor=c_rr, alpha=0.7, lw=None)),
-            'F1G1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None)),
-            'F1G-1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None))
-            }
-
-        self.samBeamsH = {
-            'F0G0': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G-1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F1G0': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor=c_rb, alpha=0.7, lw=None)),
-            'F1G1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None)),
-            'F1G-1': self.ax_sam.add_patch(
-                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None))
-            }
-
-        self.detBeamsH = {
-            'F0G0': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F0G-1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
-            'F1G0': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor=c_rb, alpha=0.7, lw=None)),
-            'F1G1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None)),
-            'F1G-1': self.ax_det.add_patch(
-                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None))
-            }
-
-        self.detLines = {
-            'module': self.ax_det.add_patch(
-                Rectangle((0, 0), 1, 1, fill=False, facecolor='k')),
-            'Vfilter': self.ax_det.add_patch(
-                Rectangle((0, 0), 1, 1, facecolor="blue", alpha=0.4)),
-            'Hfilter': self.ax_det.add_patch(
-                Rectangle((0, 0), 1, 1, facecolor="blue", alpha=0.4)),
-            'diamond': self.ax_det.add_patch(
-                Rectangle((-8, -8), 16, 16, facecolor="blue", alpha=0.4, angle=45))
-               }
-
-        # 5x5 membranes
-        self.sampleLines = {}
-        self.etchLines = {}
-        for k in range(SampleN*SampleN):
-            self.sampleLines[k] = self.ax_sam.add_patch(
-                Rectangle((0, 0), 1, 1, fill=False, facecolor='k'))
-            self.etchLines[k] = self.ax_sam.add_patch(
-                Rectangle((0, 0), 1, 1, fill=False, facecolor='k', alpha=0.4, ls='--'))
-
-
-    def RectUpdate(self, rect, xLeft, yBottom, xRight, yTop):
-        """ Updates the position and size of the given Rectangle.
-
-            rect: Rectangle to update
-            xLeft: x position of the left corner
-            yBottom: y position of the bottom corner
-            xRight: x position of the right corner
-            yTop: y position of the top corner
-        """
-
-        xw = np.abs(xLeft - xRight)
-        yw = np.abs(yTop - yBottom)
-
-
-        rect.set_xy((self.scale*xLeft, self.scale*yBottom))
-        rect.set_height(self.scale*yw)
-        rect.set_width(self.scale*xw)
-
-    def PolyUpdate(self, poly, xLeft, yBottom, xRight, yTop):
-        """ Updates the corner position of a Polygon.
-
-            poly: regular Polygon to update
-            xLeft: x position of the left corner
-            yBottom: y position of the bottom corner
-            xRight: x position of the right corner
-            yTop: y position of the top corner
-        """
-
-        xy = self.scale*np.array([
-            [xLeft, yBottom],
-            [xLeft, yTop],
-            [xRight, yTop],
-            [xRight, yBottom]])
-
-        poly.set_xy(xy)
-
-    def LinePlaneIntersection(self, l1, l2, p0, n):
-        """ Calculate the intersection point in space between a line (beam)
-            passing through 2 points l1 and l2 and a (sample) plane passing by
-            p0 with normal n
-
-            l1: [x,y,z] point on line
-            l2: [x,y,z] point on line
-            p0: [x,y,z] point on plane
-            n: plane normal vector
-        """
-
-        # plane parametrized as (p - p0).n = 0
-        # line parametrized as p = l1 + l12*d with d Real
-        l12 = l2 - l1
-
-        if np.dot(l12,n) == 0:
-            return [0,0,0] # line is either in the plane or outside the plane
-        else:
-            d = np.dot((p0 - l1), n)/np.dot(l12,n)
-            return l1 + l12*d
-
-    def UpdateBeams(self, Beams, Z, incidence, conf):
-        """ Update the position and size of the beams.
-
-            Beams: dictionary of f'F{f}G{g}' Polygon for f = 0 and 1 zone
-                plate order and g = +1, 0 and -1 grating order
-            Z: distance Z between the zone plate and the current imaging plane
-            incidence: incidence angle of the imaging plane in rad
-            conf: dictionnary of distance for calculation {'F', 'TZPGwH',
-                'TZPGwV', 'TZPGo', 'theta_grating'}
-        """
-        F = conf['F']
-        wH = conf['TZPGwH']
-        wV = conf['TZPGwV']
-        o = conf['TZPGo']
-        offaxis = wV/2 + o
-
-        # imaging plane
-        n = np.array([np.sin(incidence), 0, np.cos(incidence)])
-        p0 = np.array([0,0,Z])
-
-        # zone plate 4 corner points
-        l1_list = [
-            np.array([wH/2,wV/2,0]),
-            np.array([wH/2,-wV/2,0]),
-            np.array([-wH/2,-wV/2,0]),
-            np.array([-wH/2,wV/2,0])
-            ]
-
-        # 6 beam focus point
-        l2_list = {
-            'F0G0': np.array([0,0,KBS_F]),
-            'F0G1': np.array([KBS_F*np.arctan(conf['theta_grating']),0,KBS_F]),
-            'F0G-1': np.array([-KBS_F*np.arctan(conf['theta_grating']),0,KBS_F]),
-            'F1G0': np.array([0,offaxis,F]),
-            'F1G1': np.array([F*np.arctan(conf['theta_grating']),offaxis,F]),
-            'F1G-1': np.array([-F*np.arctan(conf['theta_grating']),offaxis,F])
-            }
-
-        for beam in l2_list.keys():
-            l2 = l2_list[beam]
-            corners = []
-            for l1 in l1_list:
-                corners.append(self.LinePlaneIntersection(l1, l2, p0, n)[:2])
-            Beams[beam].set_xy(self.scale*np.array(corners))
-
-    def DetectorUpdate(self, Xoff, Yoff):
-        """ Draw DSSC detector module with filter mask.
-
-            Xoff: x offset
-            Yoff: y offset
-        """
-        # x module axis is vertical, y module axis is horizontal
-        # the module 15 is +0.91 mm vertical from the beam and 4.233 mm horizontal from the beam
-        offset_h = 4.233e-3 #[m]
-        offset_v = 0.91e-3 #[m]
-
-        moduleHw = 256*0.236e-3 #[m]
-        moduleVw = 128*0.204e-3 #[m]
-
-        filterW = 7e-3 #[m]
-        filterL = 160e-3 #[m]
-        diamondW = 16e-3 #[m]
-
-        self.RectUpdate(self.detLines['module'],
-                   -moduleHw - offset_h + Xoff, offset_v + Yoff, -offset_h + Xoff, moduleVw + offset_v + Yoff)
-        self.RectUpdate(self.detLines['Vfilter'],
-                   -filterW/2 + Xoff, -filterL/2 + Yoff,  filterW/2 + Xoff, filterL/2 + Yoff)
-        self.RectUpdate(self.detLines['Hfilter'],
-                   -filterL/2 + Xoff, -filterW/2 + Yoff,  filterL/2 + Xoff, filterW/2 + Yoff)
-
-        # moving rotated rectangles is a pain in matplotlib
-        self.detLines['diamond'].set_xy((self.scale*Xoff, self.scale*(Yoff - diamondW/2*np.sqrt(2))))
-
-    def SampleUpdate(self, w, p, Xoff, Yoff, thickness=0.525,
-                     incidence=0, etch_angle=54.74):
-        """ Draw the sample.
-
-            w: membrane width
-            p: membrane pitch
-            Xoff: sample x offset
-            Yoff: sample y offset
-            thickness: sample thickness used to calculate the etched facets
-            incidence: incidence angle in rad
-            etch_angle: etching angle from surface in rad
-        """
-        # Si etching angle
-        wp = w +2*thickness/np.tan(etch_angle)
-
-        # incidence angle squeezes sample and etch lines
-        # and induces an apparent shift off the etch lines
-        ci = np.cos(incidence)
-        thsi = thickness*np.sin(incidence)
-
-        j = 0
-        for k in range(-(SampleN-1)//2, (SampleN-1)//2+1):
-            for l in range(-(SampleN-1)//2, (SampleN-1)//2+1):
-                self.RectUpdate(self.sampleLines[j],
-                    ci*(k*p - w/2 + Xoff), l*p - w/2 - Yoff,
-                    ci*(k*p + w/2 + Xoff), l*p + w/2 - Yoff)
-                self.RectUpdate(self.etchLines[j],
-                    ci*(k*p - wp/2 + Xoff)+thsi, l*p - wp/2 - Yoff,
-                    ci*(k*p + wp/2 + Xoff)+thsi, l*p + wp/2 - Yoff)
-                j+=1
-
-    def UpdateFig(self):
-        """ Update the figure with the current slider values.
-
-        """
-
-        # we calculate the optics for the central wavelength
-        nrjL, nrjH = self.nrj_slider.value # [eV]
-        wlL = 1240/nrjL*1e-9
-        wlH = 1240/nrjH*1e-9
-        nrjD = self.design_nrj_slider.value # [eV]
-        wl = 1240/nrjD*1e-9
-
-        theta_grating = self.grating_slider.value*1e-3 # [rad]
-        sampleZ = self.samz_slider.value*1e-3 # [m]
-        samIncidence = np.deg2rad(self.samIncidence_slider.value) # [rad]
-        detectorZ = self.det_slider.value*1e-3 # [m]
-        TZPGwH = self.TZPGwH_slider.value*1e-3 #[m]
-        TZPGwV = self.TZPGwV_slider.value*1e-3 #[m]
-        TZPGo = self.TZPGoffaxis_slider.value*1e-3 - TZPGwV/2 #[m]
-
-        d_nominal = wl/np.sin(theta_grating)
-        self.d_label.value = f'Grating Pitch:{int(np.round(d_nominal*1e9))} nm'
-
-        rn = TZPGwV + TZPGo
-        dr_nominal = wl * F0 / (2*np.sqrt(rn**2 + (TZPGwV/2)**2))
-        self.dr_label.value = f'Outer Zone Plate width dr:{int(np.round(dr_nominal*1e9))} nm'
-
-        # configuration for the low energy and high energy photon
-        F0_temp = (2*np.sqrt(rn**2 + (TZPGwV/2)**2))*dr_nominal/wlL
-        F_temp = F0_temp*(d-f1)/(d-f1-F0_temp)
-        confL = {'F':F_temp,
-                 'theta_grating':np.arcsin(wlL/d_nominal),
-                 'TZPGwH':TZPGwH, 'TZPGwV':TZPGwV,  'TZPGo':TZPGo}
-        F0_temp = (2*np.sqrt(rn**2 + (TZPGwV/2)**2))*dr_nominal/wlH
-        F_temp = F0_temp*(d-f1)/(d-f1-F0_temp)
-        confH = {'F':F_temp,
-                 'theta_grating':np.arcsin(wlH/d_nominal),
-                 'TZPGwH':TZPGwH, 'TZPGwV':TZPGwV,  'TZPGo':TZPGo}
-
-        # update the beams
-        self.UpdateBeams(self.samBeamsL, Z0 + sampleZ, samIncidence, confL)
-        self.UpdateBeams(self.detBeamsL, Z0 + detectorZ, 0, confL)
-        self.UpdateBeams(self.samBeamsH, Z0 + sampleZ, samIncidence, confH)
-        self.UpdateBeams(self.detBeamsH, Z0 + detectorZ, 0, confH)
-
-        # update the detector
-        detXoff = self.detX_slider.value*1e-3 #[m]
-        detYoff = self.detY_slider.value*1e-3 #[m]
-        self.DetectorUpdate(detXoff, detYoff)
-
-        # update the sample
-        samw = self.samw_slider.value*1e-3 #[m]
-        samp = self.samp_slider.value*1e-3 #[m]
-        samXoff = self.samX_slider.value*1e-3 #[m]
-        samYoff = self.samY_slider.value*1e-3 #[m]
-        samthickness = self.samthickness_slider.value*1e-6 #[m]
-        samEtchAngle = np.deg2rad(self.samEtchAngle_slider.value) #[rad]
-        self.SampleUpdate(samw, samp, samXoff, samYoff, samthickness,
-            samIncidence, samEtchAngle)
-
-    def initWidgets(self):
-        """ Creates the necessary interactive widget controls.
-        """
-        self.button = widgets.Button(
-            description='Update',
-        )
-
-        @self.button.on_click
-        def plot_on_click(b):
-            self.UpdateFig()
-
-        # TZPG part
-        self.type = widgets.Dropdown(
-            options=list(TZPG_db),
-            value='Custom',
-            description='Type:',
-            disabled=False
-            )
-
-        def TZPGtype(change):
-            v = TZPG_db[change.new]
-            self.design_nrj_slider.value = v['design_nrj']
-            self.TZPGwH_slider.value = v['TZPGwH']
-            self.TZPGwV_slider.value = v['TZPGwV']
-            self.TZPGoffaxis_slider.value = v['TZPGoffaxis']
-            self.grating_slider.value = v['grating']
-            # necessary to recompute grating pitch and outer zone plate width
-            self.UpdateFig()
-
-        self.type.observe(TZPGtype, names='value')
-
-
-        self.nrj_slider = widgets.FloatRangeSlider(
-            value=[840., 880.],
-            min=450.,
-            max=3200.0,
-            step=1,
-            readout_format='.2f',
-        )
-        self.design_nrj_slider = widgets.FloatSlider(
-            value=860.,
-            min=450.,
-            max=3200.0,
-            step=1,
-            readout_format='.2f',
-        )
-        self.TZPGwH_slider = widgets.FloatSlider(
-            value=1.0,
-            min=.1,
-            max=3.0,
-            step=0.05,
-            readout_format='.2f',
-        )
-        self.TZPGwV_slider = widgets.FloatSlider(
-            value=1.0,
-            min=.1,
-            max=3.0,
-            step=0.05,
-            readout_format='.2f',
-        )
-        self.TZPGoffaxis_slider = widgets.FloatSlider(
-            value=0.75,
-            min=.0,
-            max=2.0,
-            step=0.05,
-            readout_format='.2f',
-        )
-        self.grating_slider = widgets.FloatSlider(
-            value=3.8,
-            min=1.,
-            max=10.0,
-            step=0.05,
-            readout_format='.2f',
-        )
-        self.dr_label = widgets.Label(value='dr')
-        self.d_label = widgets.Label(value='dr')
-        TZPGTab = VBox(children=[self.type,
-            HBox([widgets.Label(value='Energy (eV):'), self.nrj_slider]),
-            HBox([widgets.Label(value='Design Energy (eV):'), self.design_nrj_slider]),
-            HBox([widgets.Label(value=r'Grating $\theta$ (mrad):'), self.grating_slider]),
-            self.d_label, self.dr_label,
-            HBox([widgets.Label(value='TZPG horiz. width (mm):'), self.TZPGwH_slider]),
-            HBox(children=[HBox([widgets.Label(value='TZPG vert. width (mm):'), self.TZPGwV_slider]),
-            HBox([widgets.Label(value='TZPG off axis (mm):'), self.TZPGoffaxis_slider])
-            ])])
-
-        # sample part
-        self.samz_slider = widgets.FloatSlider(
-            value=30.,
-            min=-10.,
-            max=180.0,
-            step=1,
-            readout_format='.2f',
-        )
-        self.samw_slider = widgets.FloatSlider(
-            value=.5,
-            min=0.01,
-            max=2.0,
-            step=.01,
-            readout_format='.2f',
-        )
-        self.samp_slider = widgets.FloatSlider(
-            value=1.0,
-            min=0.01,
-            max=2.0,
-            step=.01,
-            readout_format='.2f',
-        )
-        self.samX_slider = widgets.FloatSlider(
-            value=0.,
-            min=-10,
-            max=10,
-            step=0.01,
-            readout_format='.2f',
-        )
-        self.samY_slider = widgets.FloatSlider(
-            value=0.,
-            min=-10,
-            max=10,
-            step=0.01,
-            readout_format='.2f',
-        )
-        self.samthickness_slider = widgets.FloatSlider(
-            value=381,
-            min=1,
-            max=1000,
-            step=1,
-            readout_format='.0f',
-        )
-        self.samIncidence_slider = widgets.FloatSlider(
-            value=0,
-            min=0,
-            max=90,
-            step=1,
-            readout_format='.0f',
-        )
-        self.samEtchAngle_slider = widgets.FloatSlider(
-            value=54.74,
-            min=0,
-            max=90,
-            step=0.01,
-            readout_format='.2f',
-        )
-        samTab = VBox(children=[HBox([widgets.Label(value='Sample Z (mm):'), self.samz_slider]),
-                                HBox(children=[HBox([widgets.Label(value='Membrane width (mm):'), self.samw_slider]),
-                                               HBox([widgets.Label(value='Membrane pitch (mm):'), self.samp_slider])]),
-                                HBox(children=[HBox([widgets.Label(value='Sample X-Offset (mm):'), self.samX_slider]),
-                                               HBox([widgets.Label(value='Sample Y-Offset (mm):'), self.samY_slider])]),
-                                HBox([widgets.Label(value='Substrate thickness (um):'), self.samthickness_slider]),
-                                HBox([HBox([widgets.Label(value='Normal incidence (deg):'), self.samIncidence_slider]),
-                                    HBox([widgets.Label(value='Etch angle from surface (deg):'), self.samEtchAngle_slider])])
-                                ])
-
-        #detector tab
-        self.det_slider = widgets.FloatSlider(
-            value=2000.,
-            min=1000,
-            max=5800,
-            step=1,
-            description='',
-            readout_format='.2f',
-        )
-        self.detX_slider = widgets.FloatSlider(
-            value=20.,
-            min=-50,
-            max=50,
-            step=0.5,
-            readout_format='.2f',
-        )
-        self.detY_slider = widgets.FloatSlider(
-            value=0.,
-            min=-50,
-            max=50,
-            step=0.5,
-            readout_format='.2f',
-        )
-        detTab = VBox(children=[HBox([widgets.Label(value='Detector Z (m):'), self.det_slider]),
-                                HBox(children=[HBox([widgets.Label(value='Detector X-Offset (mm):'), self.detX_slider]),
-                                               HBox([widgets.Label(value='Detector Y-Offset (mm):'), self.detY_slider])])])
-
-        tab1 = widgets.Accordion(children=[TZPGTab])
-        tab1.set_title(0, 'TZPG')
-        tab1.selected_index = 0
-
-        tab2 = widgets.Accordion(children=[samTab])
-        tab2.set_title(0, 'sample')
-        tab2.selected_index = 0
-
-        tab3 = widgets.Accordion(children=[detTab])
-        tab3.set_title(0, 'detector')
-        tab3.selected_index = 0
-
-        self.control = VBox(children=[tab1, tab2, tab3, self.button])
diff --git a/__init__.py b/__init__.py
deleted file mode 100644
index bbe30a50412c39c30961b270a2327bd5b4ff59e2..0000000000000000000000000000000000000000
--- a/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from .TZPGcalc import TZPGcalc
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..69fe55ecfa9aade66e1412aef0ee7d04a9bcde86
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,19 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+SOURCEDIR     = source
+BUILDDIR      = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/doc/source/Interactive TZPG calculator.ipynb b/doc/source/Interactive TZPG calculator.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..e54c44b79e7cb3b2cc5175e105024423ea128364
--- /dev/null
+++ b/doc/source/Interactive TZPG calculator.ipynb	
@@ -0,0 +1,16905 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "%matplotlib notebook\n",
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "import matplotlib as mpl\n",
+    "mpl.rcParams['savefig.dpi'] = 300\n",
+    "mpl.rcParams['figure.dpi'] = 150\n",
+    "mpl.rcParams['figure.constrained_layout.use'] = True"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": [
+       "/* Put everything inside the global mpl namespace */\n",
+       "window.mpl = {};\n",
+       "\n",
+       "\n",
+       "mpl.get_websocket_type = function() {\n",
+       "    if (typeof(WebSocket) !== 'undefined') {\n",
+       "        return WebSocket;\n",
+       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
+       "        return MozWebSocket;\n",
+       "    } else {\n",
+       "        alert('Your browser does not have WebSocket support. ' +\n",
+       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
+       "              'Firefox 4 and 5 are also supported but you ' +\n",
+       "              'have to enable WebSockets in about:config.');\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
+       "    this.id = figure_id;\n",
+       "\n",
+       "    this.ws = websocket;\n",
+       "\n",
+       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
+       "\n",
+       "    if (!this.supports_binary) {\n",
+       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
+       "        if (warnings) {\n",
+       "            warnings.style.display = 'block';\n",
+       "            warnings.textContent = (\n",
+       "                \"This browser does not support binary websocket messages. \" +\n",
+       "                    \"Performance may be slow.\");\n",
+       "        }\n",
+       "    }\n",
+       "\n",
+       "    this.imageObj = new Image();\n",
+       "\n",
+       "    this.context = undefined;\n",
+       "    this.message = undefined;\n",
+       "    this.canvas = undefined;\n",
+       "    this.rubberband_canvas = undefined;\n",
+       "    this.rubberband_context = undefined;\n",
+       "    this.format_dropdown = undefined;\n",
+       "\n",
+       "    this.image_mode = 'full';\n",
+       "\n",
+       "    this.root = $('<div/>');\n",
+       "    this._root_extra_style(this.root)\n",
+       "    this.root.attr('style', 'display: inline-block');\n",
+       "\n",
+       "    $(parent_element).append(this.root);\n",
+       "\n",
+       "    this._init_header(this);\n",
+       "    this._init_canvas(this);\n",
+       "    this._init_toolbar(this);\n",
+       "\n",
+       "    var fig = this;\n",
+       "\n",
+       "    this.waiting = false;\n",
+       "\n",
+       "    this.ws.onopen =  function () {\n",
+       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
+       "            fig.send_message(\"send_image_mode\", {});\n",
+       "            if (mpl.ratio != 1) {\n",
+       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
+       "            }\n",
+       "            fig.send_message(\"refresh\", {});\n",
+       "        }\n",
+       "\n",
+       "    this.imageObj.onload = function() {\n",
+       "            if (fig.image_mode == 'full') {\n",
+       "                // Full images could contain transparency (where diff images\n",
+       "                // almost always do), so we need to clear the canvas so that\n",
+       "                // there is no ghosting.\n",
+       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
+       "            }\n",
+       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
+       "        };\n",
+       "\n",
+       "    this.imageObj.onunload = function() {\n",
+       "        fig.ws.close();\n",
+       "    }\n",
+       "\n",
+       "    this.ws.onmessage = this._make_on_message_function(this);\n",
+       "\n",
+       "    this.ondownload = ondownload;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_header = function() {\n",
+       "    var titlebar = $(\n",
+       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
+       "        'ui-helper-clearfix\"/>');\n",
+       "    var titletext = $(\n",
+       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
+       "        'text-align: center; padding: 3px;\"/>');\n",
+       "    titlebar.append(titletext)\n",
+       "    this.root.append(titlebar);\n",
+       "    this.header = titletext[0];\n",
+       "}\n",
+       "\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_canvas = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var canvas_div = $('<div/>');\n",
+       "\n",
+       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
+       "\n",
+       "    function canvas_keyboard_event(event) {\n",
+       "        return fig.key_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
+       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
+       "    this.canvas_div = canvas_div\n",
+       "    this._canvas_extra_style(canvas_div)\n",
+       "    this.root.append(canvas_div);\n",
+       "\n",
+       "    var canvas = $('<canvas/>');\n",
+       "    canvas.addClass('mpl-canvas');\n",
+       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
+       "\n",
+       "    this.canvas = canvas[0];\n",
+       "    this.context = canvas[0].getContext(\"2d\");\n",
+       "\n",
+       "    var backingStore = this.context.backingStorePixelRatio ||\n",
+       "\tthis.context.webkitBackingStorePixelRatio ||\n",
+       "\tthis.context.mozBackingStorePixelRatio ||\n",
+       "\tthis.context.msBackingStorePixelRatio ||\n",
+       "\tthis.context.oBackingStorePixelRatio ||\n",
+       "\tthis.context.backingStorePixelRatio || 1;\n",
+       "\n",
+       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
+       "\n",
+       "    var rubberband = $('<canvas/>');\n",
+       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
+       "\n",
+       "    var pass_mouse_events = true;\n",
+       "\n",
+       "    canvas_div.resizable({\n",
+       "        start: function(event, ui) {\n",
+       "            pass_mouse_events = false;\n",
+       "        },\n",
+       "        resize: function(event, ui) {\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "        stop: function(event, ui) {\n",
+       "            pass_mouse_events = true;\n",
+       "            fig.request_resize(ui.size.width, ui.size.height);\n",
+       "        },\n",
+       "    });\n",
+       "\n",
+       "    function mouse_event_fn(event) {\n",
+       "        if (pass_mouse_events)\n",
+       "            return fig.mouse_event(event, event['data']);\n",
+       "    }\n",
+       "\n",
+       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
+       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
+       "    // Throttle sequential mouse events to 1 every 20ms.\n",
+       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
+       "\n",
+       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
+       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
+       "\n",
+       "    canvas_div.on(\"wheel\", function (event) {\n",
+       "        event = event.originalEvent;\n",
+       "        event['data'] = 'scroll'\n",
+       "        if (event.deltaY < 0) {\n",
+       "            event.step = 1;\n",
+       "        } else {\n",
+       "            event.step = -1;\n",
+       "        }\n",
+       "        mouse_event_fn(event);\n",
+       "    });\n",
+       "\n",
+       "    canvas_div.append(canvas);\n",
+       "    canvas_div.append(rubberband);\n",
+       "\n",
+       "    this.rubberband = rubberband;\n",
+       "    this.rubberband_canvas = rubberband[0];\n",
+       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
+       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
+       "\n",
+       "    this._resize_canvas = function(width, height) {\n",
+       "        // Keep the size of the canvas, canvas container, and rubber band\n",
+       "        // canvas in synch.\n",
+       "        canvas_div.css('width', width)\n",
+       "        canvas_div.css('height', height)\n",
+       "\n",
+       "        canvas.attr('width', width * mpl.ratio);\n",
+       "        canvas.attr('height', height * mpl.ratio);\n",
+       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
+       "\n",
+       "        rubberband.attr('width', width);\n",
+       "        rubberband.attr('height', height);\n",
+       "    }\n",
+       "\n",
+       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
+       "    // upon first draw.\n",
+       "    this._resize_canvas(600, 600);\n",
+       "\n",
+       "    // Disable right mouse context menu.\n",
+       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
+       "        return false;\n",
+       "    });\n",
+       "\n",
+       "    function set_focus () {\n",
+       "        canvas.focus();\n",
+       "        canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    window.setTimeout(set_focus, 100);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>');\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) {\n",
+       "            // put a spacer in here.\n",
+       "            continue;\n",
+       "        }\n",
+       "        var button = $('<button/>');\n",
+       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
+       "                        'ui-button-icon-only');\n",
+       "        button.attr('role', 'button');\n",
+       "        button.attr('aria-disabled', 'false');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "\n",
+       "        var icon_img = $('<span/>');\n",
+       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
+       "        icon_img.addClass(image);\n",
+       "        icon_img.addClass('ui-corner-all');\n",
+       "\n",
+       "        var tooltip_span = $('<span/>');\n",
+       "        tooltip_span.addClass('ui-button-text');\n",
+       "        tooltip_span.html(tooltip);\n",
+       "\n",
+       "        button.append(icon_img);\n",
+       "        button.append(tooltip_span);\n",
+       "\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    var fmt_picker_span = $('<span/>');\n",
+       "\n",
+       "    var fmt_picker = $('<select/>');\n",
+       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
+       "    fmt_picker_span.append(fmt_picker);\n",
+       "    nav_element.append(fmt_picker_span);\n",
+       "    this.format_dropdown = fmt_picker[0];\n",
+       "\n",
+       "    for (var ind in mpl.extensions) {\n",
+       "        var fmt = mpl.extensions[ind];\n",
+       "        var option = $(\n",
+       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
+       "        fmt_picker.append(option);\n",
+       "    }\n",
+       "\n",
+       "    // Add hover states to the ui-buttons\n",
+       "    $( \".ui-button\" ).hover(\n",
+       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
+       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
+       "    );\n",
+       "\n",
+       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
+       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
+       "    // which will in turn request a refresh of the image.\n",
+       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_message = function(type, properties) {\n",
+       "    properties['type'] = type;\n",
+       "    properties['figure_id'] = this.id;\n",
+       "    this.ws.send(JSON.stringify(properties));\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.send_draw_message = function() {\n",
+       "    if (!this.waiting) {\n",
+       "        this.waiting = true;\n",
+       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    var format_dropdown = fig.format_dropdown;\n",
+       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
+       "    fig.ondownload(fig, format);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
+       "    var size = msg['size'];\n",
+       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
+       "        fig._resize_canvas(size[0], size[1]);\n",
+       "        fig.send_message(\"refresh\", {});\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
+       "    var x0 = msg['x0'] / mpl.ratio;\n",
+       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
+       "    var x1 = msg['x1'] / mpl.ratio;\n",
+       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
+       "    x0 = Math.floor(x0) + 0.5;\n",
+       "    y0 = Math.floor(y0) + 0.5;\n",
+       "    x1 = Math.floor(x1) + 0.5;\n",
+       "    y1 = Math.floor(y1) + 0.5;\n",
+       "    var min_x = Math.min(x0, x1);\n",
+       "    var min_y = Math.min(y0, y1);\n",
+       "    var width = Math.abs(x1 - x0);\n",
+       "    var height = Math.abs(y1 - y0);\n",
+       "\n",
+       "    fig.rubberband_context.clearRect(\n",
+       "        0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);\n",
+       "\n",
+       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
+       "    // Updates the figure title.\n",
+       "    fig.header.textContent = msg['label'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
+       "    var cursor = msg['cursor'];\n",
+       "    switch(cursor)\n",
+       "    {\n",
+       "    case 0:\n",
+       "        cursor = 'pointer';\n",
+       "        break;\n",
+       "    case 1:\n",
+       "        cursor = 'default';\n",
+       "        break;\n",
+       "    case 2:\n",
+       "        cursor = 'crosshair';\n",
+       "        break;\n",
+       "    case 3:\n",
+       "        cursor = 'move';\n",
+       "        break;\n",
+       "    }\n",
+       "    fig.rubberband_canvas.style.cursor = cursor;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
+       "    fig.message.textContent = msg['message'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
+       "    // Request the server to send over a new figure.\n",
+       "    fig.send_draw_message();\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
+       "    fig.image_mode = msg['mode'];\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Called whenever the canvas gets updated.\n",
+       "    this.send_message(\"ack\", {});\n",
+       "}\n",
+       "\n",
+       "// A function to construct a web socket function for onmessage handling.\n",
+       "// Called in the figure constructor.\n",
+       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
+       "    return function socket_on_message(evt) {\n",
+       "        if (evt.data instanceof Blob) {\n",
+       "            /* FIXME: We get \"Resource interpreted as Image but\n",
+       "             * transferred with MIME type text/plain:\" errors on\n",
+       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
+       "             * to be part of the websocket stream */\n",
+       "            evt.data.type = \"image/png\";\n",
+       "\n",
+       "            /* Free the memory for the previous frames */\n",
+       "            if (fig.imageObj.src) {\n",
+       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
+       "                    fig.imageObj.src);\n",
+       "            }\n",
+       "\n",
+       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
+       "                evt.data);\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
+       "            fig.imageObj.src = evt.data;\n",
+       "            fig.updated_canvas_event();\n",
+       "            fig.waiting = false;\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        var msg = JSON.parse(evt.data);\n",
+       "        var msg_type = msg['type'];\n",
+       "\n",
+       "        // Call the  \"handle_{type}\" callback, which takes\n",
+       "        // the figure and JSON message as its only arguments.\n",
+       "        try {\n",
+       "            var callback = fig[\"handle_\" + msg_type];\n",
+       "        } catch (e) {\n",
+       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
+       "            return;\n",
+       "        }\n",
+       "\n",
+       "        if (callback) {\n",
+       "            try {\n",
+       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
+       "                callback(fig, msg);\n",
+       "            } catch (e) {\n",
+       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
+       "            }\n",
+       "        }\n",
+       "    };\n",
+       "}\n",
+       "\n",
+       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
+       "mpl.findpos = function(e) {\n",
+       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
+       "    var targ;\n",
+       "    if (!e)\n",
+       "        e = window.event;\n",
+       "    if (e.target)\n",
+       "        targ = e.target;\n",
+       "    else if (e.srcElement)\n",
+       "        targ = e.srcElement;\n",
+       "    if (targ.nodeType == 3) // defeat Safari bug\n",
+       "        targ = targ.parentNode;\n",
+       "\n",
+       "    // jQuery normalizes the pageX and pageY\n",
+       "    // pageX,Y are the mouse positions relative to the document\n",
+       "    // offset() returns the position of the element relative to the document\n",
+       "    var x = e.pageX - $(targ).offset().left;\n",
+       "    var y = e.pageY - $(targ).offset().top;\n",
+       "\n",
+       "    return {\"x\": x, \"y\": y};\n",
+       "};\n",
+       "\n",
+       "/*\n",
+       " * return a copy of an object with only non-object keys\n",
+       " * we need this to avoid circular references\n",
+       " * http://stackoverflow.com/a/24161582/3208463\n",
+       " */\n",
+       "function simpleKeys (original) {\n",
+       "  return Object.keys(original).reduce(function (obj, key) {\n",
+       "    if (typeof original[key] !== 'object')\n",
+       "        obj[key] = original[key]\n",
+       "    return obj;\n",
+       "  }, {});\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
+       "    var canvas_pos = mpl.findpos(event)\n",
+       "\n",
+       "    if (name === 'button_press')\n",
+       "    {\n",
+       "        this.canvas.focus();\n",
+       "        this.canvas_div.focus();\n",
+       "    }\n",
+       "\n",
+       "    var x = canvas_pos.x * mpl.ratio;\n",
+       "    var y = canvas_pos.y * mpl.ratio;\n",
+       "\n",
+       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
+       "                             step: event.step,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "\n",
+       "    /* This prevents the web browser from automatically changing to\n",
+       "     * the text insertion cursor when the button is pressed.  We want\n",
+       "     * to control all of the cursor setting manually through the\n",
+       "     * 'cursor' event from matplotlib */\n",
+       "    event.preventDefault();\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    // Handle any extra behaviour associated with a key event\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.key_event = function(event, name) {\n",
+       "\n",
+       "    // Prevent repeat events\n",
+       "    if (name == 'key_press')\n",
+       "    {\n",
+       "        if (event.which === this._key)\n",
+       "            return;\n",
+       "        else\n",
+       "            this._key = event.which;\n",
+       "    }\n",
+       "    if (name == 'key_release')\n",
+       "        this._key = null;\n",
+       "\n",
+       "    var value = '';\n",
+       "    if (event.ctrlKey && event.which != 17)\n",
+       "        value += \"ctrl+\";\n",
+       "    if (event.altKey && event.which != 18)\n",
+       "        value += \"alt+\";\n",
+       "    if (event.shiftKey && event.which != 16)\n",
+       "        value += \"shift+\";\n",
+       "\n",
+       "    value += 'k';\n",
+       "    value += event.which.toString();\n",
+       "\n",
+       "    this._key_event_extra(event, name);\n",
+       "\n",
+       "    this.send_message(name, {key: value,\n",
+       "                             guiEvent: simpleKeys(event)});\n",
+       "    return false;\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
+       "    if (name == 'download') {\n",
+       "        this.handle_save(this, null);\n",
+       "    } else {\n",
+       "        this.send_message(\"toolbar_button\", {name: name});\n",
+       "    }\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
+       "    this.message.textContent = tooltip;\n",
+       "};\n",
+       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
+       "\n",
+       "mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
+       "\n",
+       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
+       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
+       "    // object with the appropriate methods. Currently this is a non binary\n",
+       "    // socket, so there is still some room for performance tuning.\n",
+       "    var ws = {};\n",
+       "\n",
+       "    ws.close = function() {\n",
+       "        comm.close()\n",
+       "    };\n",
+       "    ws.send = function(m) {\n",
+       "        //console.log('sending', m);\n",
+       "        comm.send(m);\n",
+       "    };\n",
+       "    // Register the callback with on_msg.\n",
+       "    comm.on_msg(function(msg) {\n",
+       "        //console.log('receiving', msg['content']['data'], msg);\n",
+       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
+       "        ws.onmessage(msg['content']['data'])\n",
+       "    });\n",
+       "    return ws;\n",
+       "}\n",
+       "\n",
+       "mpl.mpl_figure_comm = function(comm, msg) {\n",
+       "    // This is the function which gets called when the mpl process\n",
+       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
+       "\n",
+       "    var id = msg.content.data.id;\n",
+       "    // Get hold of the div created by the display call when the Comm\n",
+       "    // socket was opened in Python.\n",
+       "    var element = $(\"#\" + id);\n",
+       "    var ws_proxy = comm_websocket_adapter(comm)\n",
+       "\n",
+       "    function ondownload(figure, format) {\n",
+       "        window.open(figure.imageObj.src);\n",
+       "    }\n",
+       "\n",
+       "    var fig = new mpl.figure(id, ws_proxy,\n",
+       "                           ondownload,\n",
+       "                           element.get(0));\n",
+       "\n",
+       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
+       "    // web socket which is closed, not our websocket->open comm proxy.\n",
+       "    ws_proxy.onopen();\n",
+       "\n",
+       "    fig.parent_element = element.get(0);\n",
+       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
+       "    if (!fig.cell_info) {\n",
+       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
+       "        return;\n",
+       "    }\n",
+       "\n",
+       "    var output_index = fig.cell_info[2]\n",
+       "    var cell = fig.cell_info[0];\n",
+       "\n",
+       "};\n",
+       "\n",
+       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
+       "    var width = fig.canvas.width/mpl.ratio\n",
+       "    fig.root.unbind('remove')\n",
+       "\n",
+       "    // Update the output cell to use the data from the current canvas.\n",
+       "    fig.push_to_output();\n",
+       "    var dataURL = fig.canvas.toDataURL();\n",
+       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
+       "    // the notebook keyboard shortcuts fail.\n",
+       "    IPython.keyboard_manager.enable()\n",
+       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
+       "    fig.close_ws(fig, msg);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
+       "    fig.send_message('closing', msg);\n",
+       "    // fig.ws.close()\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
+       "    // Turn the data on the canvas into data in the output cell.\n",
+       "    var width = this.canvas.width/mpl.ratio\n",
+       "    var dataURL = this.canvas.toDataURL();\n",
+       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.updated_canvas_event = function() {\n",
+       "    // Tell IPython that the notebook contents must change.\n",
+       "    IPython.notebook.set_dirty(true);\n",
+       "    this.send_message(\"ack\", {});\n",
+       "    var fig = this;\n",
+       "    // Wait a second, then push the new image to the DOM so\n",
+       "    // that it is saved nicely (might be nice to debounce this).\n",
+       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._init_toolbar = function() {\n",
+       "    var fig = this;\n",
+       "\n",
+       "    var nav_element = $('<div/>');\n",
+       "    nav_element.attr('style', 'width: 100%');\n",
+       "    this.root.append(nav_element);\n",
+       "\n",
+       "    // Define a callback function for later on.\n",
+       "    function toolbar_event(event) {\n",
+       "        return fig.toolbar_button_onclick(event['data']);\n",
+       "    }\n",
+       "    function toolbar_mouse_event(event) {\n",
+       "        return fig.toolbar_button_onmouseover(event['data']);\n",
+       "    }\n",
+       "\n",
+       "    for(var toolbar_ind in mpl.toolbar_items){\n",
+       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
+       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
+       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
+       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
+       "\n",
+       "        if (!name) { continue; };\n",
+       "\n",
+       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
+       "        button.click(method_name, toolbar_event);\n",
+       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
+       "        nav_element.append(button);\n",
+       "    }\n",
+       "\n",
+       "    // Add the status bar.\n",
+       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
+       "    nav_element.append(status_bar);\n",
+       "    this.message = status_bar[0];\n",
+       "\n",
+       "    // Add the close button to the window.\n",
+       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
+       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
+       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
+       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
+       "    buttongrp.append(button);\n",
+       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
+       "    titlebar.prepend(buttongrp);\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._root_extra_style = function(el){\n",
+       "    var fig = this\n",
+       "    el.on(\"remove\", function(){\n",
+       "\tfig.close_ws(fig, {});\n",
+       "    });\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
+       "    // this is important to make the div 'focusable\n",
+       "    el.attr('tabindex', 0)\n",
+       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
+       "    // off when our div gets focus\n",
+       "\n",
+       "    // location in version 3\n",
+       "    if (IPython.notebook.keyboard_manager) {\n",
+       "        IPython.notebook.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "    else {\n",
+       "        // location in version 2\n",
+       "        IPython.keyboard_manager.register_events(el);\n",
+       "    }\n",
+       "\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
+       "    var manager = IPython.notebook.keyboard_manager;\n",
+       "    if (!manager)\n",
+       "        manager = IPython.keyboard_manager;\n",
+       "\n",
+       "    // Check for shift+enter\n",
+       "    if (event.shiftKey && event.which == 13) {\n",
+       "        this.canvas_div.blur();\n",
+       "        // select the cell after this one\n",
+       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
+       "        IPython.notebook.select(index + 1);\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
+       "    fig.ondownload(fig, null);\n",
+       "}\n",
+       "\n",
+       "\n",
+       "mpl.find_output_cell = function(html_output) {\n",
+       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
+       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
+       "    // IPython event is triggered only after the cells have been serialised, which for\n",
+       "    // our purposes (turning an active figure into a static one), is too late.\n",
+       "    var cells = IPython.notebook.get_cells();\n",
+       "    var ncells = cells.length;\n",
+       "    for (var i=0; i<ncells; i++) {\n",
+       "        var cell = cells[i];\n",
+       "        if (cell.cell_type === 'code'){\n",
+       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
+       "                var data = cell.output_area.outputs[j];\n",
+       "                if (data.data) {\n",
+       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
+       "                    data = data.data;\n",
+       "                }\n",
+       "                if (data['text/html'] == html_output) {\n",
+       "                    return [cell, data, j];\n",
+       "                }\n",
+       "            }\n",
+       "        }\n",
+       "    }\n",
+       "}\n",
+       "\n",
+       "// Register the function which deals with the matplotlib target/channel.\n",
+       "// The kernel may be null if the page has been refreshed.\n",
+       "if (IPython.notebook.kernel != null) {\n",
+       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
+       "}\n"
+      ],
+      "text/plain": [
+       "<IPython.core.display.Javascript object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<img src=\"data:image/png;base64,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\" width=\"900\">"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "572caa6f60c048f3a93034925847b97c",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "VBox(children=(Button(description='Update', style=ButtonStyle()), Accordion(children=(VBox(children=(BoundedIn…"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "<TZPGcalc.TZPGcalc.TZPGcalc at 0x7f91780991c0>"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from TZPGcalc.TZPGcalc import TZPGcalc\n",
+    "TZPGcalc()"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.8.10"
+  },
+  "widgets": {
+   "application/vnd.jupyter.widget-state+json": {
+    "state": {
+     "0008085842a9416089aa354b9c4b7c52": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "008288c1f0c24d95a70be3e032f68751": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0093fc9dafb24620b5ed997430716841": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_19bbeb6117a741ef96b77d11d155abf2",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_0008085842a9416089aa354b9c4b7c52",
+       "value": 840
+      }
+     },
+     "0096d7599914460582582e46eef49cb5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "00b41c0291014bbb9030a0a0688483c7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "00b71be1c2544a62a4c8e4a52b52d673": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_acdc5dfe51f34252937ce65e19f78eab"
+       ],
+       "layout": "IPY_MODEL_bec27a69d37d4576b42f9ee94f6fd363"
+      }
+     },
+     "00d83bc536044cbaa7081f853860f10c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "00f2f96fb5344bb9a5c2f3657160dfaf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_ada37a9d5fa94e9e980fb440e8bf5810",
+       "style": "IPY_MODEL_de38aa00aaac4830b1740dd52ee95d31",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>13.99</td>\n      <td>28.62</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>13.99</td>\n      <td>28.62</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>13.99</td>\n      <td>28.62</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "01118f1f50a14cc894fe711748c725cb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "011f2e65babd4f49b1e99f69aeca1521": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "012d3362ca764ba69048ba63cbd73b7b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_fc989fdd77cf467a85a089d3e52da129",
+        "IPY_MODEL_976ae90a658046e58a883e8152327b53",
+        "IPY_MODEL_0e0d687f7d864dcaa5ebdaaed2d40d0c",
+        "IPY_MODEL_39b8df13c0814b9b9d3120c65c0ba23c",
+        "IPY_MODEL_1cebec9c23284f05ab8cb5e5b49a100c"
+       ],
+       "layout": "IPY_MODEL_8081d2f2fc9941b8ac3cadb41ac8a596"
+      }
+     },
+     "015a73ce1dfe4731b35affa13383b8bc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "016a2d6ec61547da94dc740766349e9d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "016ca90651404e25970d8d226ee8cb3a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "017c7834dc3f4d76aa2bf237c942e53c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0186bb58062e498f8e7c87f6ad4e44f5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "019c42749198444999a5e7fee52fab86": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_fb7f6fffdebe41bb9e9badde736f894a"
+       ],
+       "layout": "IPY_MODEL_f610e8f7e5ca40fe8263f5d3b8727672"
+      }
+     },
+     "01ac67ab80b5426fb6bf7a18fbd5740f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0251c0df4b024f9ca45461884c30836b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_e643bc9e5a6341908964cdfcb42846be",
+       "max": 2000,
+       "style": "IPY_MODEL_815d4e5c84b04de3861c687d09de9533",
+       "value": 100
+      }
+     },
+     "02814b7f6a324bcb8929811332bfacc3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "02be31d83af7412f9915923cb743da85": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_cec8946fca2c4fdab284783f3ddff397",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_6a205a2b56154ab890e5470e45cc10e1",
+       "value": 34.5
+      }
+     },
+     "036daa0635af4a0495a09a942058c531": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "03c2c919a5a64eccaeaac4f329aa8f3a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_755f930d236e4ad0b473df895f43a402",
+       "max": 2000,
+       "style": "IPY_MODEL_06f3f0629cdf4485b83c5ab8b4838a9a",
+       "value": 200
+      }
+     },
+     "03c57a29f45046b99fbcab6d54da1dc3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "03c8fb36cf82403e8e84a8ef3f5bb8fa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "03ef1407da8b4bce848582c32feb7ced": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "03f91a0b41cf43419cbcc8e780f72fa0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "04130b711e2f4dd598e55fa45483cf0f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_4ca2d0e6ae1b4e449da09270111fa6ef",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_02814b7f6a324bcb8929811332bfacc3",
+       "value": 20
+      }
+     },
+     "045ae53809cb42a5895707575d65e23f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "04631676023e4637b7fbd9959f7537bb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "048a4d04e51b444d88f945e1fc23da18": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_ff4c6090397e4711844908bcc1240fac",
+        "IPY_MODEL_387950559631434db7e3715dc8cb41b7",
+        "IPY_MODEL_f640d044144f4b00b986c454324d8dc7",
+        "IPY_MODEL_894828cba7b2440b9fbf6e814bee02ab",
+        "IPY_MODEL_ef522a82bbc945c1817c88ebef2c0fea"
+       ],
+       "layout": "IPY_MODEL_03ef1407da8b4bce848582c32feb7ced"
+      }
+     },
+     "048d5ddda0f24907b9e4f68d685f1d6c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "049410488a294064a5c667f49a405e8c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "04d47b9e029645b082e6f0e366685675": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0514f64580cc4eee8706669cf50a1dc0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_538297c5e46b4b2687f6a6f67493f8bc",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_ea9bf02174a544b1b15387b8d352a0b5",
+       "value": 1
+      }
+     },
+     "051a4a4fc566400293514640d33a69c3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_3ffa96a815b648a0a15c50a9cca1337a",
+        "IPY_MODEL_bb3fb55a50e648b5ba04ccecdaf83404",
+        "IPY_MODEL_3c86a3b3f734491ab0f9c2f18911f1bb"
+       ],
+       "layout": "IPY_MODEL_180a392d3e124f5ebd01b39987bba5a5"
+      }
+     },
+     "05233531775b498487b66efe53d20db4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_d1d55260bf254e35a7f8df1ab6a16f11",
+       "style": "IPY_MODEL_6ecf6dccbc7f425c847e9d2afa07e5d7"
+      }
+     },
+     "054d734918144b098782d1ba69e18fab": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e09941d4440f4f87afeeec0ed24b5fa1",
+        "IPY_MODEL_69a89ebaf5494f0d9496fbdab8734a38"
+       ],
+       "layout": "IPY_MODEL_d736231aab14452da8f4fb3b2a0642f9"
+      }
+     },
+     "056bd0702d324fe992d497ff680c4b28": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_c00b3644a0ed488ab1e4a0879ff8d175",
+        "IPY_MODEL_88307488b5114a239347c3682eca9d6f"
+       ],
+       "layout": "IPY_MODEL_c0e9205e95d84dce91c54e660802c5b0"
+      }
+     },
+     "0580f8ddbdc14765a03235b8928cd6ea": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "059cf3e4ec094899b17521e5b6a5f559": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_b853ecc147da479b91f397d3fc1f6195",
+        "IPY_MODEL_080b9fe6293940a3b81f8272883e3c27",
+        "IPY_MODEL_0514f64580cc4eee8706669cf50a1dc0"
+       ],
+       "layout": "IPY_MODEL_76f71d525eda4c31b774649dbfc822e9"
+      }
+     },
+     "05a4b4935e4c4facb5805446226151cb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "05c3683d3f6c4ab6999de0425aab9d12": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_52f5ae45a3644466858069d8d68e60f9",
+        "IPY_MODEL_7579bb047f234aa4a8760bc52e4072b0",
+        "IPY_MODEL_3ad0e209247f436f90297d3a413bf705",
+        "IPY_MODEL_5c8efdd7dcbd400bb115cd91e33d68e4",
+        "IPY_MODEL_dce85ec4beee4ea38cbbdd8b9ed05401"
+       ],
+       "layout": "IPY_MODEL_9dee4918311e4e4f84bdbc1033ff4ca2"
+      }
+     },
+     "05c5b06f970a4145b57bfc5ae6311a91": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "05cffa1b8f304dd9bcc946b221a9fd42": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "05d0d9d3a289460ca8800b32198fcfd1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7074746fecbd4bf1823836465720058f",
+        "IPY_MODEL_c363bd32fd1743fab52a40d7eae82c3c"
+       ],
+       "layout": "IPY_MODEL_a14b725a3d6746328c723a07236849a5"
+      }
+     },
+     "05d4cf58a3984b03960eafba62311f25": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "062d1e839ff8471ba1a9cf7cc1c655a9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0638c50db4604026a5909b916fb5c22f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "065d9fc97bb5497ca3aa434dcdbfd6b1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "066d62f55b04454eac0b187a65854580": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0680bdfffe094e00843b5528e1fe4bbd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "06f39f0e0fe14a0786d78bd6bdf29281": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_256e3b7676b946d9babdf84e47bd68a7",
+        "IPY_MODEL_ce2ee549dc7d45e5828616555cdd271a",
+        "IPY_MODEL_704515b387834af4b758afc7850391bc"
+       ],
+       "layout": "IPY_MODEL_5b18153b372d47a198910e274d5c4ad5"
+      }
+     },
+     "06f3f0629cdf4485b83c5ab8b4838a9a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "07007ee162d74f05b4fef18d20799e59": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_97124282efbb4183b9df36749adcce09",
+        "IPY_MODEL_801794dea4d94ad09add87be03205a57",
+        "IPY_MODEL_31a6ddef7bd2483298f72502acebaff7",
+        "IPY_MODEL_def0f407961045db987cdbc95973711c",
+        "IPY_MODEL_dd70e7dbb8cf428184daf1e1dac3460f",
+        "IPY_MODEL_94e936b2d1c34102a357c59b4e054822"
+       ],
+       "layout": "IPY_MODEL_4cd57ad892ec42aea6c7469742efded9"
+      }
+     },
+     "07123dc1b05b45c386fe9a74b54f63c6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "07261016c16248728b99d13e01b35466": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "074d187683904756854e64df7777314e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "074fe9b1a97147c6b5c869648b0b9675": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_cd4265ec4c3f42af9d221ffa47a10aee"
+       ],
+       "layout": "IPY_MODEL_62e7d59c129b4e3ea8416a04dbd4d128",
+       "selected_index": null
+      }
+     },
+     "0750bb7d20a143299a1e3dedb2a5ccf1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_cc2f91266d3b49fbbb12f4c081c4805c",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_734427a2e9244830a3ef7cde6d424b8c"
+      }
+     },
+     "07609125fcd549ed8dd78f325ca571a7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_4eb0e0dd8cac4bc1bd2eaa9694ec5b65"
+       ],
+       "layout": "IPY_MODEL_b44fe5c44e6d4d08bd23dafbdabb6f87"
+      }
+     },
+     "07770ae5f8b24ecf882da1e47963f6f1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_c99bd31ae92e4918b026812a983261da",
+        "IPY_MODEL_c880829a6ca04159a3c2b31e1bac6511"
+       ],
+       "layout": "IPY_MODEL_e84dc39db22648f38121d8f8d38ca114"
+      }
+     },
+     "07795c0712a342f4a9ce1b55474acf07": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "07955369d5104a1da5d2015a1344ee56": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "07b589e57e7747bfb220d1db3e58c79a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_50582c3307ad48288f38f87423b35577",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_d3da53454def429ca92ddaad8e0e2331"
+      }
+     },
+     "07d700b0929d4149b1bc71173067b1c4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_99c8ca8954654c5e8fa50d0cc9f6724f",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_bd8e68284f3b43e78331bdf700e4cd93",
+       "value": 20
+      }
+     },
+     "080b9fe6293940a3b81f8272883e3c27": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_29afe502078e49caacc3c99a61f03cd0",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_4b165726ab97448cb23feacbbb94043d",
+       "value": 0.5
+      }
+     },
+     "08576dad15c842968e4ebd45fe30a043": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "08a77d3803f240e48633baf954ee29a7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_cdf55c048ace4ec5961e188a6ad1a7d0",
+       "max": 2000,
+       "style": "IPY_MODEL_9ed709265bb94ea1a2a27cfd02a13b0a",
+       "value": 200
+      }
+     },
+     "08d8e10bba014f5f98c2ab9287f483ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "08e0876bd23b4c459cf49ea86c1b340b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_99d3ba1826734520826f56fdfb81773d",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_6c533682af4540ce90de8888569de65d"
+      }
+     },
+     "08f56ceebe26404f8cc6c6a5f4bbe38a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_5ed47d5c096c4f9f8548c6e208366a32"
+       ],
+       "layout": "IPY_MODEL_ce6d269271f648bd95b998d5a5e00e11"
+      }
+     },
+     "0960f0c4478f4b7b855cb07a7d81b150": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_206c8dba78ad40c884d2bc295844f0af",
+       "style": "IPY_MODEL_8c9e77641f334f59a43759f33091234b",
+       "value": "Membrane (mm), "
+      }
+     },
+     "097448916d9545e88125c75d51900275": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "097ed447c6244e60ab26d13a01ec27aa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_b60c3509396f4501a5f8567d9638a96b",
+        "IPY_MODEL_3085bae4c29049e296b01cef9d523bb4",
+        "IPY_MODEL_0f9522f1f5f1462a9754ef698c94ac4e",
+        "IPY_MODEL_53d7df892be14687935be35ac1e08ccb",
+        "IPY_MODEL_4a242ae65cb649d4a59743d266e610b2",
+        "IPY_MODEL_ef5eb0b5118749baa38a9666c0bce198"
+       ],
+       "layout": "IPY_MODEL_3e09fac7e2624ce0a752fecc1613f2e4"
+      }
+     },
+     "09a1ae5ec20c42738306fa842b0836ad": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "09ca06a32274428fa6515b183f848778": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "0a0f542f278e41abadabea6d55387152": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "0a2ea7d2354a4be498242128b5418a2b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_a49a6aacdeb346009695124d40cd0d0b",
+       "style": "IPY_MODEL_f541f7680bb041bd8cf7cf8cc51ffef8"
+      }
+     },
+     "0a40246c3a76479fbf76ad91d1e23944": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_26ff3f6179ec49d39f03d67ed7c6499c",
+        "IPY_MODEL_24aa719c41eb4261ae6e3d105195e2fc",
+        "IPY_MODEL_c3d29f9d2a3f4facbf1487e0e62a78ee"
+       ],
+       "layout": "IPY_MODEL_90feb4368dc543658e9b7f59d5ac64df"
+      }
+     },
+     "0a5b32b383c34987b9a71b2af3577977": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0a609402842a4db4af8710d852e045e4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_378161180e8049bc84aafd8057f899a2",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_9be77dfc691a4f20b98f90ea43063217",
+       "value": 5.05
+      }
+     },
+     "0a6c5e06bdd14ca19d72be6e3b8af54e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9e3759f8702b46e6a6f7097b9baeacea",
+        "IPY_MODEL_e77b41e1cba146c8b1ccffe0ec120faa",
+        "IPY_MODEL_e93e0d924f884becb6b3b01e4dc926c6",
+        "IPY_MODEL_fde629f2aeba4ed09ccac8343dd57192"
+       ],
+       "layout": "IPY_MODEL_fdf3b508f08c487a85f69cb5fb88ebee"
+      }
+     },
+     "0a8a6a1564674cc0aa6b0590cc8bb9b8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_47a1ab1e832041a79ccdbd2eda8133c8",
+       "max": 2000,
+       "style": "IPY_MODEL_b1396dbabf7e4f7faa78ee90077ed2d0",
+       "value": 100
+      }
+     },
+     "0add05b2e852466f9401ffa8e5de53b7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_66a5722186e24bec8cd950cfee9431fd",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_210a264337034ee395f63423a4a9742b",
+       "value": 0.8
+      }
+     },
+     "0b037907096446b8b44335bb8bf6d635": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0b65a223b3d2475caddfa474e73e2425": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_097448916d9545e88125c75d51900275",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_338135df07e745dba56103ef3b5d25b4",
+       "value": 5.74
+      }
+     },
+     "0be6954b97fb43f7b33895c8f21bf7b1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0bea43f5fefb4a70b14846ee460a48a9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_712adebc44234517aff4f723ce86ea09",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_23306a6bc8054407ae14188e53f82baf",
+       "value": 0.55
+      }
+     },
+     "0c621d0fc0e0487d94f21458c2c827ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_56ddecedd0724154ac3a9f9d6489e256",
+        "IPY_MODEL_b2e6ff627ed745e8940e5c20c2cf6347"
+       ],
+       "layout": "IPY_MODEL_011f2e65babd4f49b1e99f69aeca1521"
+      }
+     },
+     "0c8a4049c51c49a5bede923813d4db64": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0c8bd55780064c3697784363b3438380": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0cadd1b3761846c49570c34af47afb1c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_72bb9fb41d394f47b1e68aedb14a0955",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_2e52ae30e9704d36939d42e651e839ca",
+       "value": 20
+      }
+     },
+     "0d185da3f13241719f1f5ac4d3a7ed4c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0e0d687f7d864dcaa5ebdaaed2d40d0c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_fb3624dd2351487495fc8e9f484d0cd2",
+        "IPY_MODEL_e03d1f77227844929fd321524dc728d5",
+        "IPY_MODEL_6ec4407897944dd0bfee06709c3f9689"
+       ],
+       "layout": "IPY_MODEL_160584c30642487aa2746813caa054a5"
+      }
+     },
+     "0e18f784c62b4592bb8f0a0137f2aa43": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0e1bf212a7b142749ca16f1cf43ca486": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "0e1e3cce30f64ba0a3f862c5be38aae8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0e2829a4062b4649b6e4e0300bd4b194": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_606351fc62934e7cac7a75a5b4651b95",
+        "IPY_MODEL_811d8cc362b24a9385657063afb3b9ff"
+       ],
+       "layout": "IPY_MODEL_1d57431d7a8a4a6d9a6901b1607caf52"
+      }
+     },
+     "0e2ab774c56d4b4d87348f9211990531": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0e33f048d2a84da8abaf0e7eb6439b12": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0e89a4f81f8a4380af173439ea2c31f6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "0eb87bc4bbac461293c9159bac33e724": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "0ebf2c17da5f42f0a577bd78a3add84a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "0ec271094a4240ccaf03687184d84e59": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_1e97ac09ecf94452b1922485e8995965",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_404465f69e734a6fb6ea228c02511811",
+       "value": 20
+      }
+     },
+     "0ee1b4d4f53d46939587c48988ab8138": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_3b59a0f0b4fc43a39b93f6a226e4a46b",
+       "style": "IPY_MODEL_7033331c9b6c4b03a0a5f638b3199101",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "0f9522f1f5f1462a9754ef698c94ac4e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_7e396e434908467ba36cd5918684322f"
+       ],
+       "layout": "IPY_MODEL_ff8925e683be437dab5e91d4b3770f83"
+      }
+     },
+     "0ff43cc8066745b1a191e3d4dd881889": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "10094d8a70334565917fe15cbcc89f47": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "105eb91256d6476dae5da7d596be6520": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "107872ed45494d16aca4df013610785a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "10ba9fcc038c4eebba98bbc3cd3a1291": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1101e4705d924b53bae2327b1dc52f33": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_65cb339a38ae4e299b9f7f87dac2da61",
+        "IPY_MODEL_bbdf6084e2344a4b92c4d2724141a007"
+       ],
+       "layout": "IPY_MODEL_70f0e4683b464fcf8678199e4ee1792f"
+      }
+     },
+     "114467652c3b4852b03ddcdc2c976af3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "1182c6c4fdd544669bec5bea53b46efb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_965a4cf4eaf5468e9044d5484ace9d83",
+        "IPY_MODEL_f3b4041068e1440fbd110ad0b5f96bae",
+        "IPY_MODEL_6d7ff6224ebb4562b0c401fc874afa85",
+        "IPY_MODEL_6c516c02c37d4b51ad025063b095ed12",
+        "IPY_MODEL_a65ce334853643da93b948c9bf5e1869"
+       ],
+       "layout": "IPY_MODEL_3cf54998af3d4a4e82328984c3c09549"
+      }
+     },
+     "11898ed2464243a191564ec16153e1f8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "118cc8b53ea0405b8d4737280a41469e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_c799f250e3bd4ab28859c7aa6e835a44",
+       "style": "IPY_MODEL_d50f77a2d7f14a60a9bae6b1e2a272bb",
+       "value": "Energy range (eV):"
+      }
+     },
+     "11cec4e93da2496eb73cb28acd9370b0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_4c1548e6a5f34afbbbe4939505dae44c",
+        "IPY_MODEL_3805c14715ad4a2ca6057e38bb9a05d3",
+        "IPY_MODEL_0cadd1b3761846c49570c34af47afb1c",
+        "IPY_MODEL_07b589e57e7747bfb220d1db3e58c79a"
+       ],
+       "layout": "IPY_MODEL_7c819b0aaf224560a6e8892eae726610"
+      }
+     },
+     "11e2f69fefe145659944169598271d70": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_77ea0026e3244e18ad9c587abcb1969b",
+        "IPY_MODEL_b922de1c4412441abb54b6d4ab8595af"
+       ],
+       "layout": "IPY_MODEL_03c8fb36cf82403e8e84a8ef3f5bb8fa"
+      }
+     },
+     "11e6a9730c7e4ad991efe63887597be1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "122c042830ff4c9095e9d511d6633226": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "123065eeb16e428daae4a23bc15c40c7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_d72fb88a7cd241f58ac283636cdbc1fa"
+       ],
+       "layout": "IPY_MODEL_7e111e03204648929b4e56fa414ca088"
+      }
+     },
+     "1236f6fd72a848e0b7cb3f4ba91260e2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_4dcc11aeabb04a5bb50f0023e301d6a1",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_cd31c43959fc4cb9a7e5f31c614d5b39"
+      }
+     },
+     "126d79c2846746c0af3c3934ba49adca": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "129a8ef1510b48a0a04f2b84cb64f208": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "12b8e0e181b244bf899712082f8137a7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "1323fe9418a747bfbda692ad021757ca": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_1c98e738cbe549eeb2771a76c9b2ec56",
+       "style": "IPY_MODEL_90a0e0800d4744379d69635a4e12ab9a",
+       "value": "Outer Zone Plate width dr:210 nm"
+      }
+     },
+     "135c90eb3f4941918158daaff3b875c5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "13e095f412a842d5bc3e2f53ea927420": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "13f86af447304915b4dc0403f7b32c41": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_63c7fca8b44444d6a9b49a4c7243c38d",
+       "style": "IPY_MODEL_ff3dcdac3a884084b957cfc92f200413",
+       "value": "TZPG (mm):"
+      }
+     },
+     "13fa02dd13fe414383d59972f0a11dd5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_3a03607fa899422dbf9a0813e0aaa6d0",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_2512b80e81bb451ab5bd11642cd8abd3",
+       "value": 1
+      }
+     },
+     "1450608de43e4a43ba514a048582810b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_dd3b0f69198749eaa7d18f18a0e58e5b",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_6f1c16b5efd84869b59d01be62213626"
+      }
+     },
+     "14761b3043e5429e8d8ed861bd9eae75": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_38a265b31b274fbbacc8a167e5000992",
+       "style": "IPY_MODEL_432a00d8414942928f6f667f327a6c36",
+       "value": "High energy"
+      }
+     },
+     "14c564049d5045dab27cb19b3d2f37ae": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_c20904797d7e4f60b219f84256efc43d",
+        "IPY_MODEL_e6595e40cc0c49a5a0c982d6d4d2bfbd",
+        "IPY_MODEL_46e704973b1d4872b32f536d19252e07",
+        "IPY_MODEL_0750bb7d20a143299a1e3dedb2a5ccf1"
+       ],
+       "layout": "IPY_MODEL_f9c79e0b4c27466498abd941f9289bde"
+      }
+     },
+     "14d6e9ed68e4416887d9187c1df4ff2e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_42e6c2fcf67d498582560f2725c1eef2",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_7046480b99124eefb75b71c9b00d3586",
+       "value": 785
+      }
+     },
+     "14e115fb9e4a4359a3befd2bcf1d2961": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_331b701931da47a4ae9151d5b2e4ba99",
+       "style": "IPY_MODEL_39bec103240a4871a2feef15c702b062"
+      }
+     },
+     "14f2778433e844a5b2b5d1b21b42019b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "14f7109f4ebc4787a0539ba7831bea2c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "150a2798f9c94c859ca2da96d4857aeb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_7fd01ce43d7e40898e9bea70eb32cb82"
+       ],
+       "layout": "IPY_MODEL_c2a2511702764fa5ac2e39abbd508416"
+      }
+     },
+     "1517942f22354fab9f5e81a44dac2c50": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "152c9f24bd424e0f9963c69d347a7287": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "157a3476f5e3467c85f52328a5d4260f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "157b981741d641349c52bd34c286d70e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1598528d903d4be69a728aac3daa7cc0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "15af32b5db3140129bfd08fc67fa6f4e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "15fb27b9a26c494a8415b0116be3d880": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "160584c30642487aa2746813caa054a5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1608398a230247d79cea8ecf4d7f7c22": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1638538aa8b74f1b8128310a5372dc60": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "169609d494534e6ba7bbe0a2779ee993": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1699132b0c454de8a0d5a39cd85418bb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1718e31a328d492ab6b63c3a64b78d98": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2b09515c45a8451bbb84a8b4bf9a9ede",
+        "IPY_MODEL_263a92b40e874032bdf98c5397d40763"
+       ],
+       "layout": "IPY_MODEL_bd0ca96ed8734e90bc930b9fc6e619f0"
+      }
+     },
+     "17597e9365f341ffb36a467cedbc7250": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1799dfdc47944f25b139de39caf8ca15": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "17ca941506314ce48c6478b3ff18d7e2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "17d4e80f6ee04effa939f0cbf39fe0f3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "180a392d3e124f5ebd01b39987bba5a5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "18240c25d3f14a17aaad06f9d460f6ec": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_62e1dfc160a24aea9b640c8e2c8480d6",
+        "IPY_MODEL_6cb7492afb184b90bc2f050a0d1b4f65"
+       ],
+       "layout": "IPY_MODEL_af4b35df3106455fb0952265fa6141fb"
+      }
+     },
+     "183ea13538cd47c282cfcdb64a87192c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_4f8d7d3eef7747eeb0dd3053fe41b1c7",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_d1b023fce1394f1ca09ac30b59e2dc1a",
+       "value": 2000
+      }
+     },
+     "18560cbbc89b4a21815374d36c85789a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_4edca99839534b029037dcd11f9449bb",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_38e1eb4d7ef449b8aa6fafceedc9a53b",
+       "value": 30
+      }
+     },
+     "18a6857b0cbe4ec9ae74ce40c9b68820": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_f8cf68654b0f43e3b61993179ea592cf",
+       "style": "IPY_MODEL_80a6f82641c84a9bb9bc32bcd3d72163",
+       "value": "High energy"
+      }
+     },
+     "18eb1bab30ed4ea1b93a0abcd692540d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_b0285d870cff457184acb2c3addc3b26",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_2af7bf3c6b9c4bb48686b3e5e59e0f5e",
+       "value": 381
+      }
+     },
+     "18f369c30b8f4487a714a4e135cae66d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_ed8fece8d8a142a1a42db20c0d031a52",
+        "IPY_MODEL_2afe44dda6fd44cb85c14f4761148311",
+        "IPY_MODEL_1a9607af0c2f4cd3bd051834ca13b1e3"
+       ],
+       "layout": "IPY_MODEL_af5cfa183d434cc18e5906f12c8ac9ed"
+      }
+     },
+     "1929449192744bd49cd6d1fd756f9b80": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1931b49f139a4e56b28a1a6502de0455": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_e4bd75d014d04d4db00abd9de47414bb",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_79699c6cd12e44bcbfd2be592e02b315",
+       "value": 3.1
+      }
+     },
+     "1938be34506e4213ad9380f1409e0a8e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "196740e27e7e47feae2c86285922dad4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "196d1b8e34b5429a9272e7b80d1da349": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "19ad69fb3b5c4e669e872498e8978c10": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_d2f59e3a3ea345f4abfbca26550c8e3c",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_5e72a42662a94d22a39befd92d5c1562",
+       "value": 715
+      }
+     },
+     "19aeaf2303e04ed3b4360fa60c015797": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 3,
+       "layout": "IPY_MODEL_c9afb09d09e54c178db02412860d05a7",
+       "style": "IPY_MODEL_9cfb13b8609846549ffd0a65faa81032"
+      }
+     },
+     "19bbeb6117a741ef96b77d11d155abf2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "19d49cc37ee44d62a82c6d42f0088efe": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "1a00c50eba8b4a298f968e4142473410": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "1a0c6a3c51c646f5adaaefc54af488f6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "1a6d5837767e480b893bbeb1e5f12ac6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "1a863a77f1f9422eb0211acf192ada36": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1a923fa85b634653bc1e4e45813cd9fe": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_036daa0635af4a0495a09a942058c531",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_05a4b4935e4c4facb5805446226151cb",
+       "value": 860
+      }
+     },
+     "1a93985548bf4d2baea2ecdebd525e69": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1a9607af0c2f4cd3bd051834ca13b1e3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_763177a971da4c968a442b2c0e92c5e0",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_b228319d38584bcbb295d9fb23d68742",
+       "value": 1
+      }
+     },
+     "1aa69aa9e5244a7f9a0c3b3a5e01cf2b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_2c0d45a852df4b2bb0c6ed3fd5661a94",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_d7d2983b19364409a1a2c9e0be24a2b8"
+      }
+     },
+     "1aaee61c3dd944b8a1f7f3900215d872": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1ac716938c3640bbb0e64744fe7cc1bf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2e75da9f7b8340ce8c797f14227daf76",
+        "IPY_MODEL_059cf3e4ec094899b17521e5b6a5f559",
+        "IPY_MODEL_4637370959f04c02ad97d94b024cefd4",
+        "IPY_MODEL_ae622672125740aba082fd768ac23c0e",
+        "IPY_MODEL_794ac6ca90b84f88a5323df0e9d62873"
+       ],
+       "layout": "IPY_MODEL_a6d3b72fe80d493b8ec89334e23b9a83"
+      }
+     },
+     "1ae643ae8d174857b0f195064fb04527": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_13f86af447304915b4dc0403f7b32c41",
+        "IPY_MODEL_7f55bb71c01f4b6cb3cbee687b98ce46",
+        "IPY_MODEL_1ec98cf43e424ddb875eebddc6e6636d"
+       ],
+       "layout": "IPY_MODEL_7f5bed80c5d34cc6b72bcca106958999"
+      }
+     },
+     "1ae7d0c73cd14a4697a143b9b49cf891": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_6e8170f01b0247a2ad49644964be4558",
+        "IPY_MODEL_d199f4cda8b9450fb8ef86bacdad6c8f",
+        "IPY_MODEL_25ec8d742e6543a7b527dbaddd48f4d7",
+        "IPY_MODEL_a2659ca3aef048e5845879dd3e4f9ca7",
+        "IPY_MODEL_8943f1775fba4ac4815d59baeabb728c",
+        "IPY_MODEL_cd1a6f095e2b4eab84dda3c15b31a197"
+       ],
+       "layout": "IPY_MODEL_ae1472b7ac864500a7e7fb20ee28c408"
+      }
+     },
+     "1af068565c044c04bd4fc8d22060a432": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_ec6c07e0cb8f43c18b646fff0b5c1852",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_3686f46c32f7483eb95c3b9d83b3abf9",
+       "value": 1
+      }
+     },
+     "1b21264edb82442bb2e3721693fd324f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_1a923fa85b634653bc1e4e45813cd9fe",
+        "IPY_MODEL_d130bc55943f4ba6bee6f66eeb45ec9b",
+        "IPY_MODEL_e42333bde0f7486e9316ebeeca5a5a43"
+       ],
+       "layout": "IPY_MODEL_66983998e0fe44d59c145bb03d2ba626"
+      }
+     },
+     "1b2e76ddf9c6462a89517b564300b907": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_fe9b30da901a4bb2b6aeea7c278070ff",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_943c6f3e8c1c4ce285775f9a7acee5b9"
+      }
+     },
+     "1b498d9debbf4ab7a891554790593df0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_01118f1f50a14cc894fe711748c725cb",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_faaf261b8f6b4bf4a7142583edcc9209",
+       "value": 1
+      }
+     },
+     "1b6de1a2def74926b6ed891f2e7f9928": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "1b75fcbdc16f47519c5385abaca3635c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_4f5a7b4afadd4fd7837e4ef310e6cb00",
+        "IPY_MODEL_bd25ba00bb4e436391d4bd680854e158",
+        "IPY_MODEL_02be31d83af7412f9915923cb743da85",
+        "IPY_MODEL_acf6ed2b3474441589a7fb8899209f24"
+       ],
+       "layout": "IPY_MODEL_76544cfe38ed43caa96e5407726f950d"
+      }
+     },
+     "1becfd4428e64e28a73b3e407bee4174": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1c0f75e42a2745259ab7c0d1bf20bd84": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_5f18b6c4e9f8492ebbebc565d1fee55f",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_1a0c6a3c51c646f5adaaefc54af488f6",
+       "value": 0.5
+      }
+     },
+     "1c47e5f03e8e49b7b5b1d27c75ecdfd8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1c4b68e0f6d2403ab0f85da582ef6136": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "1c719c5cce6342a3b6c820efce28d8df": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_a9fd1bacccd946cf84a2637dd5520794",
+       "style": "IPY_MODEL_dbe821801fd44b539e7cdb82c9ced984",
+       "value": "Outer Zone Plate width dr:134 nm"
+      }
+     },
+     "1c98e738cbe549eeb2771a76c9b2ec56": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1cb94be0bd864d65b365c1d22646e9c7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "1cdf4276851e41a9a78b09789bfbfd0f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1ce80fbdd6714b67909dd37a7f1b3649": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_f3a03f072757430ca71e11dc80a6f66f"
+       ],
+       "layout": "IPY_MODEL_4872e7f046024654bbb57f1e8998d561"
+      }
+     },
+     "1cebec9c23284f05ab8cb5e5b49a100c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_51972633238e4e64be478f7551c386fd",
+        "IPY_MODEL_8b7e7f5b27944879a8d78aebbe89cd13"
+       ],
+       "layout": "IPY_MODEL_ba3a6c53558f45ff8d0692be668af872"
+      }
+     },
+     "1d2cf49ea658495e8feb7c70045b9f23": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1d57431d7a8a4a6d9a6901b1607caf52": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1dafe9d4c86f44d68fb9eebb64a3fb7c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_917c198f84d74753bfa3c27bae2ace44",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_ace3a8cea2d841988d974281435e2a8c"
+      }
+     },
+     "1dcb4d25c85349578062bb6f792edb6b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_72394ffe803c4463a33406eaa7da7530",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_30317159e2b6413f96d49539dea961f2",
+       "value": 840
+      }
+     },
+     "1dd13844fe5a44e8ba058b8ceef2bb96": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_b2edff5728ad4a4d99d3a7a4ba30fead",
+       "style": "IPY_MODEL_d4950f257fcb46b4aee4ef9d285db1ed",
+       "value": "Low energy"
+      }
+     },
+     "1e01a24116ce45739d8088f43598cea7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "1e349bdc4c3141269927ff152f0cb0de": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1e4361433f9f4928a95a07e46fdd71f3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "1e4b992fe8934422af4d9458c3f3af2d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_f232e3aa48844ebaa48b57f9a152a775",
+       "max": 2000,
+       "style": "IPY_MODEL_f3daef71794d4274bd8b7231c8f3c1f5",
+       "value": 100
+      }
+     },
+     "1e97ac09ecf94452b1922485e8995965": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1eadb5935b524718a62961ed277410fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_dfaf17f099664f8c9c339ed45e056a41"
+       ],
+       "layout": "IPY_MODEL_049410488a294064a5c667f49a405e8c"
+      }
+     },
+     "1ec1059b475b49559a8223b6f6373980": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1ec48db6b504488ca15d61be01bb5299": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "1ec98cf43e424ddb875eebddc6e6636d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_4c14f1e226264c48a67c16a61b6dfd11",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_295d0ccb8b6f4a9c85aa7161b386c29a",
+       "value": 1
+      }
+     },
+     "1eea5f3c74124769a9cbf5bae1558c76": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1eee8ea54ee14d4cbfc02679e2848bcf": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1efb59da7c4a46ff9fe10ac3a01a2f81": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "1f6f3b84cc064d2c9787ea78c362ca71": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_36e006643b484fbcba176a19cb47b325",
+       "style": "IPY_MODEL_bfac3a154170479f8ef58ef4269388a2",
+       "value": "Energy range (eV):"
+      }
+     },
+     "1f78ac4fa88a49429f06446eeee7eb02": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1fb0f315e7f44b759a0089f6810490a1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1fc3404bac854d3e99938246b56e462a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "1fec5050a7f7490c9fc65f99fd9f7d10": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_385a49d083b447a19a03b69907737efb",
+        "IPY_MODEL_35b4edc4529d423faa293ccb8813ddcd",
+        "IPY_MODEL_da62150d89194ba5936f99d45791e2be",
+        "IPY_MODEL_c9024e7b869a4a93b9ae95bcf9c4de98"
+       ],
+       "layout": "IPY_MODEL_a5e7afa2b13544e1a77cdc5d1e8a5ab2"
+      }
+     },
+     "202b214623454008b5ea88e8132928fd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "206c8dba78ad40c884d2bc295844f0af": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "20978716cd7b48eca694bfbf7283cee7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "20c16348d15a4df3bcc6d58379a35450": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_350c0bcde3334ea3820bdd5956de7e48",
+       "style": "IPY_MODEL_ebc67a604b2d48d78dd9ed0b8373369a",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>734.64</td>\n      <td>750.39</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>734.64</td>\n      <td>750.39</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>734.64</td>\n      <td>750.39</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>165.48</td>\n      <td>148.41</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>165.48</td>\n      <td>148.41</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>165.48</td>\n      <td>148.41</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "20eeb642eb9c4fbb9ee3b6a232e949fe": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7df1deb89e1a42698f7224fd41930318",
+        "IPY_MODEL_3797d71aff9741e0b531af1ea8bcd9b5",
+        "IPY_MODEL_e7cbddb1916a4f0bba8eae52d08852d4"
+       ],
+       "layout": "IPY_MODEL_7583875d8a88440db51e54fd14bbd0b8"
+      }
+     },
+     "20f55321e5ca432a952690a617a7f48a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2106cd34f4234b4d8cafbd7f9f0b1edc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "210a264337034ee395f63423a4a9742b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2123fb46cbd34a70abcde54299a98a2e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "21679e5862e5452e93a9b0d0d846016d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e43e9692077e4705802e349f0df8d521",
+        "IPY_MODEL_be68b0fd31b9432da7dd7e15c6551dd6"
+       ],
+       "layout": "IPY_MODEL_907466a8717c4161bb3a032cd7a11a09"
+      }
+     },
+     "21ed570baaf9469eb6a7ece304c7cbdc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "21edbaa9ea704b448d3350579cdd9974": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2203973003d142779a398f04de118e8f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2250dfe7d74c4bf69a16a0891f510aee": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2264dcff7a094736aa732d482daeb5aa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_449bf007280a4e6b84ed25891fa50569",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_f93f5cfc28cd4bb28e070630c505e0f9"
+      }
+     },
+     "2299d432da3b40f09768b0c41e757631": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_408c774c010c4b0788ea2e54a1ea5bde",
+       "style": "IPY_MODEL_7718c58cf55b4df3a9457744f4cd1f73",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "22b14cbed6f84cacaa919734c8fde6ce": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "22e9b07f45dc4e6cb6ed704626aaf22e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "23025a368508491b8074ba3da9c2ce29": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "230ba83c3ea941fbb5cecfcc91520f1a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "layout": "IPY_MODEL_e95d76ccaa05407b8d28297f33cae553",
+       "max": 1,
+       "step": null,
+       "style": "IPY_MODEL_941806f87be64600a154177f9707b168",
+       "value": 0.25
+      }
+     },
+     "230fe8ddc63b402d8dd1143fb14ebd1a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_f20d3d55c68f4e879d410053d1351338",
+       "style": "IPY_MODEL_d40054141e284e0985397d41f09718a8",
+       "value": "Membrane (mm), "
+      }
+     },
+     "2311522565884c11bf03f7f8fb15f2ec": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_2c1bc55b289244888b80762adaea104d",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_99e5d2184b9849978ecfcad8b3bb547a",
+       "value": 0.8
+      }
+     },
+     "232298db42424a7791719f9e13857717": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "23306a6bc8054407ae14188e53f82baf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2364bded8a0144d9a14726a521ad6a46": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2371514924564f4bab3fd15f793943bc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_433dd08d935a40a3abb00683d9ffa0fc",
+        "IPY_MODEL_e2c6e1c1ec4e499fb2a06d7d1d7ddd82",
+        "IPY_MODEL_5a9ebf28431445709ef397e566112a1d",
+        "IPY_MODEL_18eb1bab30ed4ea1b93a0abcd692540d",
+        "IPY_MODEL_b4fbcebe999549798b49fb4c5329fa7a"
+       ],
+       "layout": "IPY_MODEL_652f7e2b1fc64b5587d6a8fc3a1c07e9"
+      }
+     },
+     "237b7b0ac3c9481eb9b960894dd24391": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "23bd7995affa4a2db31f61874a136d8f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_75d4e7cc15a9495f8a0a641e09e89247",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_3f9266d3b81449f4b8f90fe275b14e5d",
+       "value": 30
+      }
+     },
+     "23c6b61c5aa044d097d7fb8626a42df1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "248c3318da67438295cc69cf8e6d895c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "249c3632265740dc994697afcebc0229": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_db6d98c2cdf34132a15b0f3a448f1c2b",
+        "IPY_MODEL_42741c1f1687439c8c56fcfb5509e7d6",
+        "IPY_MODEL_b2a0aff6a9c94db08128187753636661",
+        "IPY_MODEL_6d7628b1ca874e78baf9edacb250e117",
+        "IPY_MODEL_72c804a982ac4f21befb6bedb5671ef0"
+       ],
+       "layout": "IPY_MODEL_7cc99a4a5f9247be8a84e015bbc49099"
+      }
+     },
+     "24aa719c41eb4261ae6e3d105195e2fc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_96e4e74befe74b4e92d941726f68071a",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_196740e27e7e47feae2c86285922dad4",
+       "value": 0.5
+      }
+     },
+     "2512b80e81bb451ab5bd11642cd8abd3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "256215f9f57e4614a5b37128425a66c0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_3b3dc4fa1ecb44569956685d0577e465",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_c33fce3046e040d4bcbf194cb2bc5179",
+       "value": 2000
+      }
+     },
+     "256e3b7676b946d9babdf84e47bd68a7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_f917cad1c3ce4d17bbbb59a75f6f4444",
+       "style": "IPY_MODEL_5b238da8103e4664b582e0094d5b0c85",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "25938042af0b4ea78682a6679e563878": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "25d1646dbbfc4f7e9be7c8b1f9fe9830": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "25eac19c1f6e4d44a55f90ce2c0f40c8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "25ec8d742e6543a7b527dbaddd48f4d7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_c369411c1ede47d388e649e7457c0265"
+       ],
+       "layout": "IPY_MODEL_cdcd4580d7cf42bf9b1d595234991ef5"
+      }
+     },
+     "260522d3656c48cc8d0c4c29ba2f68d8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "261d856d744c4497a6298e6881a832be": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_646caace03e244e7b57f2fe02eae3b4b",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_7336e51de8234a49b67d0f98762241fb",
+       "value": 0.8
+      }
+     },
+     "263a92b40e874032bdf98c5397d40763": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_3d8a1fa4632b47fdb9e07125a22699f5",
+       "style": "IPY_MODEL_07261016c16248728b99d13e01b35466",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "2646552d39fd4cac95dbc732e667100e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "268692882b4d445397d480eb9714c615": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "268971d7654f44499eb003b127592ea8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "26a653f497c64369bc2d3f0ab25f7d9e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "26b373c081ce4243a55d605ad1ba472b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "26bb86a582774688ab3dd7759237010b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "26c46c9642744230808e4a702b419a2c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "26d3bb698efc407cb5ac6fd2e32043e3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "26ff3f6179ec49d39f03d67ed7c6499c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_2203973003d142779a398f04de118e8f",
+       "style": "IPY_MODEL_8a13873288f34e6a863e91a974480581",
+       "value": "Membrane (mm), "
+      }
+     },
+     "2708b18f36754c2083b5ab1e445ba0d0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2748d81534a24461b88a3d7dcbf8a5b9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_bf6b943294cb404c9f21370241015624",
+       "style": "IPY_MODEL_cb00112097554dba87c10746c5d177fb",
+       "value": "Grating Pitch:379 nm"
+      }
+     },
+     "276c7c929a154216a39e781b6b9cf85b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2783bc6d95034b34ab07b4981d1ee08a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_d5405eaafbf0487698edfd7ca5a998c9",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_b15a78c95b954cbdb433593682d4d611",
+       "value": 880
+      }
+     },
+     "27b9d9cc150642e1a21f7bc6ab5aca4c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_773df74aa2414bc083b6c92eb71de928",
+       "style": "IPY_MODEL_9bed63f6ce414952ad560401894da85c",
+       "value": "TZPG (mm):"
+      }
+     },
+     "27c53dfedd77419dab08fe8734998263": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "280ff64c14184ab48262a0cd1caaea1a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2837960bded44fa3927f2990fabd1a53": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "28438eaf444e46dc8d5d5ca99def3503": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "28b1ecd5c9d343978328d54a708440bb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "28b7af6739da41b9a57089d1f00d56fa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_75a65602d9ea4705a6499da28d426c27"
+       ],
+       "layout": "IPY_MODEL_05d4cf58a3984b03960eafba62311f25"
+      }
+     },
+     "28c56a51b5264e41b213faefa80adf22": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "295d0ccb8b6f4a9c85aa7161b386c29a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2990c7b18ecc49fd8aa6a2ac09d42a0f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "29afe502078e49caacc3c99a61f03cd0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "29d0383c9e9340a09e98eb7a8c727a49": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_f65a829e0964430d84551dd7d860878f",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_f830b02748b145d098cdb1beea5ee68f"
+      }
+     },
+     "29e176f9faa64933b6e895da01688c1a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "29f194119c324abf906789b9b4a9db19": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2a4414630aa745029cd095cc82f6ace7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2a97a11a25d3404ba6b2f5a67f4fa07d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2af7bf3c6b9c4bb48686b3e5e59e0f5e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2afe44dda6fd44cb85c14f4761148311": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_8cf1295b157a44a99a42ebf6d4553a15",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_45815797b9f647a2abc0b813ad08bb22",
+       "value": 0.5
+      }
+     },
+     "2b09515c45a8451bbb84a8b4bf9a9ede": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_6b516557c538447c98820eaf0055014d",
+       "style": "IPY_MODEL_88a11a52304c450499f004f8d3638a49",
+       "value": "High energy"
+      }
+     },
+     "2b10981afb224d56ae2d95eac5cb5625": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_a90db4a9a69043a48c171296197fe0e5",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_66aa3d72060142bfa4b918772fe7760b",
+       "value": 1
+      }
+     },
+     "2b2d14bc75714702a05b8bafcd3949ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2b49db57b3d24ea3a8e68a22970112ca": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e0f69e62bd6c4e60a45d4083ae051850",
+        "IPY_MODEL_183ea13538cd47c282cfcdb64a87192c",
+        "IPY_MODEL_07d700b0929d4149b1bc71173067b1c4",
+        "IPY_MODEL_e93c6e5226004adcb4bae211ab867d36"
+       ],
+       "layout": "IPY_MODEL_5797f37233264248a1fb7077709c4b4e"
+      }
+     },
+     "2b9ee6851704452bb7a3dfec52fbb379": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_f068d30509d74330baf7f754fc97d4ef",
+       "style": "IPY_MODEL_bc55db4f2dec4c6eba762d3444d44cf2",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "2bacd30f2cbf46308fb647e47b5a35b1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2bf684e1456d4b62973a02a4b8bb27f3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2c0d45a852df4b2bb0c6ed3fd5661a94": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2c1bc55b289244888b80762adaea104d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2c76e150d675492c88e689124921a889": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2d37031f158d40abaa43f0594b1b0eee": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_628b0e7524c34249b3f8d4cb009936d2",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_a69de714c066404fa3f8d6071c4f3437"
+      }
+     },
+     "2d3aced458614e61ba10159987f7db29": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2d7836a42b724713b13326ba8b25c06f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2d9add00a24f446788c766d84a2d3147": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2db04d002fad4d85ae5992830481a18a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2dcb75f681bb428dbff9be9dafa5ecfa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_0e2ab774c56d4b4d87348f9211990531",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_87908949a5a949bea75c37bf5664f288",
+       "value": 20
+      }
+     },
+     "2ddaf319161b4ef19a3a17a77b7dc65f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2de7cd74c40349578f9ee46f14817c10": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2e5135fd8692452bace2ab9df423e72e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2e52ae30e9704d36939d42e651e839ca": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "2e75da9f7b8340ce8c797f14227daf76": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_603f2212748f494a83413a71c8c20bc9",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_5f98741111cf4e52b283d5c0659d118f",
+       "value": 30
+      }
+     },
+     "2e9ad4a5a17e4b3096e620b8a28144a8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "2ecc37538cd846ce805cba3350512b3c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2ed83a06fc4c40c1936f49365ac7cd99": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "2ee6e8a9b74643db89e892c28d4d3782": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2f338612194147e89b90c1b37a8bd49a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "2f44a8d0575b428f9cb1b0032e6053c0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_ce163d86f178493fbaf23e6881985a25",
+       "style": "IPY_MODEL_b14b3e87d5ec440aac1209a957ba4864",
+       "value": "Detector (m), "
+      }
+     },
+     "2f5a25811a25407caa5ed9736180386a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_9197127259f74ac9885344d2c62158af"
+       ],
+       "layout": "IPY_MODEL_732f54aeda5443fbb055318ffb3da07f"
+      }
+     },
+     "2f79ec0cfdfe434d96029df93fbe4cb2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_a381793da2e84dc4ac68c5f1413de51b",
+        "IPY_MODEL_46c65c3babc14c31a8dd0a45433ffb3e",
+        "IPY_MODEL_344b923947994fed934f5583b23846b4"
+       ],
+       "layout": "IPY_MODEL_ade0fd5dbfe64bd5aa545fe57336f5fa"
+      }
+     },
+     "2fe3595a4fe4411eb5a3e9a788a90586": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_b502849ac55642b3b6c5a7435a65954d",
+       "style": "IPY_MODEL_76f88fc8f24144f59deb4646567abdef",
+       "value": "TZPG (mm):"
+      }
+     },
+     "2fe900722d52458f90e88fa9900ca35e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9c8819587e1746c79b6f74902bc6ebab",
+        "IPY_MODEL_2b9ee6851704452bb7a3dfec52fbb379"
+       ],
+       "layout": "IPY_MODEL_2de7cd74c40349578f9ee46f14817c10"
+      }
+     },
+     "2ff4e56e1e6646c78a5adb37564e43d8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "300209feb167409681e15dcc70a172b1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "300436b31b2143168d370f4096a4cd2d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "302f06c0b7514f36b1a0770a147c4b14": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 3,
+       "layout": "IPY_MODEL_30db33a9e75046199d52831af5962a40",
+       "style": "IPY_MODEL_50cc4a13de4e49e8a3b8a17b1cd8adb3"
+      }
+     },
+     "30317159e2b6413f96d49539dea961f2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "305c767f789c4279b60c2a5628f71221": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_370a618550ff45ba868ea8869fda036d"
+       ],
+       "layout": "IPY_MODEL_da8069815053446fba0b4e9a04b4749f"
+      }
+     },
+     "3063f6e573bf42efab788a15949d4bb6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "307d3704c1cf476f917c889cd9b8957f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_3d025b5ef7564e81afeec3904d9bb86f",
+       "style": "IPY_MODEL_0580f8ddbdc14765a03235b8928cd6ea",
+       "value": "High energy"
+      }
+     },
+     "3085bae4c29049e296b01cef9d523bb4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_79b08b22489a4c22974d4a355325f545"
+       ],
+       "layout": "IPY_MODEL_90cde5d6130f41a9b3254ed2bc866714"
+      }
+     },
+     "3085fa1e06244f33a7a399a21092db9c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_7f20d0e43d5b4420ab755c6046499a41",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_d4a3123e5dba40a6a8ac4ba21a81a36e",
+       "value": 840
+      }
+     },
+     "3097de95f2234ffa9b09bdac11517524": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "30c8b2d416dc49ce9c79ded2bc4706ed": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "30cef6bf6de54d619a0540a238435a5a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "30db33a9e75046199d52831af5962a40": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "30ea082e01454a72811a218080485c2b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "310b69aad5204c178025fef4f646f9c1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_e7a0cc9f1f634b36b305561a1b61f8d1",
+       "style": "IPY_MODEL_34a83665022149819fd369f366b79d6e"
+      }
+     },
+     "31464ca4014f411cbbeb95f1b172de7a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_447c6591ce484c5fa888bbef629c64a2",
+        "IPY_MODEL_64d2540d3ede45a1bc58b5bb21ca232c",
+        "IPY_MODEL_da3fad48dc904984a1a35c5d98d9432f",
+        "IPY_MODEL_5b778f4d3610484ab5e7d6c514ed9527",
+        "IPY_MODEL_7f4e761864ac49f8b06b86d84be346b2",
+        "IPY_MODEL_019c42749198444999a5e7fee52fab86"
+       ],
+       "layout": "IPY_MODEL_a9a432f6241f44c896bb83084f9a41f7"
+      }
+     },
+     "314a9597e264463c9baa03341ccf09df": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_66297e690efa4cc3921f1384d650f4fb",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_ab2cd39d52ce482e8d0504ec69607bbb",
+       "value": 840
+      }
+     },
+     "3165ada44f2442bbb2147dd87d359cd6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "31a6ddef7bd2483298f72502acebaff7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_c13f38cd58444d2d98837966a1db769e"
+       ],
+       "layout": "IPY_MODEL_b9bd7caeb73f444a9dbbeba29512e8aa"
+      }
+     },
+     "31f7823a82464c5ab7bff89cf96891a1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_7a9cbb6ab37147c18cfdf6a49bf1b5ce",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_c2ab505c31254adbb7c5a655d40beca9",
+       "value": 5.05
+      }
+     },
+     "3225617289a444a8b12efa90d3c3ea21": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_844d33a472f04be5b1656904196b26f7",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_2837960bded44fa3927f2990fabd1a53",
+       "value": 840
+      }
+     },
+     "325c7c54cab149d6b74e21750ae4e69b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_6b6730a3e2ca47d69c70808668364ffb",
+       "max": 2000,
+       "style": "IPY_MODEL_8f4f4bc10dd24841b701bef43e969ab5",
+       "value": 200
+      }
+     },
+     "326ba9b0b3084fd88354e738b31db85e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_28b7af6739da41b9a57089d1f00d56fa"
+       ],
+       "layout": "IPY_MODEL_976879c4cb1d4dd3a7bfdfa8f5bf98b9",
+       "selected_index": null
+      }
+     },
+     "327a5f338d4342a0bacf380e238527c9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "32ae9d6b141f4380bd6042711a8883b9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7ed9c434f95f424b9a18cc7b67b2562b",
+        "IPY_MODEL_823c5523b0ff42c18d536a4243b0e7ec"
+       ],
+       "layout": "IPY_MODEL_e0ef8d0fb97242a2aa99f2ce9beae92a"
+      }
+     },
+     "32d9d51c5e784f3b8bc36772334d0fc9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "32e7a015da13438b8702082b4bda5c51": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "32f0c87ae1d9489c931bf79097611887": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_b4b36d8309304d9d9e5c445947ebb1e5",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_672eaf56e5134f1d88fa05b8b3f05c6d",
+       "value": 0.75
+      }
+     },
+     "331b701931da47a4ae9151d5b2e4ba99": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3379f6c0f25947319616981bd3d00215": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "338135df07e745dba56103ef3b5d25b4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "33cb170ad6604c058fe0236763e1aa45": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_c20fdad8c5c74be08bef92beb4cfa6ab",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_879931ee8783413ea0d682024807ffeb"
+      }
+     },
+     "33d0be65bbe247b39463819e5614ba47": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3429fba3309c40b5b1e1259dd7ff39f3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_ff15da5594f94778b6cd10248ce20448",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_54983aac37584af3b73c23a60ed2830d",
+       "value": 54.74
+      }
+     },
+     "344b923947994fed934f5583b23846b4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_01ac67ab80b5426fb6bf7a18fbd5740f",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_583d9007e97249d28d4e195dee78c9b4"
+      }
+     },
+     "34a83665022149819fd369f366b79d6e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "34b4f28941aa4a5999a50ba252e4fbfb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_fe68f9ae1ff74155bd78d72b615c54e2",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_8b1a547acc2146e9ab8813a8400f416b",
+       "value": 54.74
+      }
+     },
+     "34dc2e5ab40f4e0e86d59fde261af831": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_15af32b5db3140129bfd08fc67fa6f4e",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_5cae56fc4a7c4592985145dc83b2f478"
+      }
+     },
+     "34e0c59b21db49708e9fa3592b97b972": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_59bc1dfa491441628ea4b21b7ef0bf43",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_b44749855deb483c96bb3fb8653212e4",
+       "value": 0.55
+      }
+     },
+     "350c0bcde3334ea3820bdd5956de7e48": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "35b4edc4529d423faa293ccb8813ddcd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_6d4add090f9b44f8987b29406f529fa9",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_fb95713181f647028fbc62869f688fc8",
+       "value": 2000
+      }
+     },
+     "35c13a9cc1204589aa0dc41ad59ee98e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_aed99a9f471d4e52b3b13604b0a243c4",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_6dd7ae3e035e46cba6912afac9eaa442",
+       "value": 46
+      }
+     },
+     "35e8bb89ca0f41ee8cc2e7d883ebdf5c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_c168088995664f3eb6171bbccaa8f859",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_99b6b53987ec4676a876dc56e8469dd4",
+       "value": 860
+      }
+     },
+     "365b47fb005d41b3bb3d3fb75c98f50b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3686f46c32f7483eb95c3b9d83b3abf9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "36e006643b484fbcba176a19cb47b325": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3701c608876248d883d7245627cb438d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "370849e15ed14071ada1450125fc71a2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "370a618550ff45ba868ea8869fda036d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d5126b34932f48c79817412900c32d36",
+        "IPY_MODEL_d0e4709300e848e1908cefb20b6b5b0c",
+        "IPY_MODEL_c0a3b186bdf543d7b2c8a0d61eb2d4fd",
+        "IPY_MODEL_051a4a4fc566400293514640d33a69c3",
+        "IPY_MODEL_8dbabab5adc74d10867f65876d3cd02e"
+       ],
+       "layout": "IPY_MODEL_ae3ac9e50a724d1ea50351b5471e6d20"
+      }
+     },
+     "370b344191ff4c9dbc6f89793f989a8b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_56a9d501ac0240979e6b624c177f8f10",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_3b8244eb20584a91b11a87bddda10e81",
+       "value": 0.75
+      }
+     },
+     "373310221a6d44be9e9e8d5405d7b910": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_48f889ed8bd64532ba4d4250bb01d9c2",
+       "style": "IPY_MODEL_595e6e1bc68a42c9920f03ccd6838076",
+       "value": "Energy range (eV):"
+      }
+     },
+     "3742783172ff4b08b6fa9d9dbffdb519": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "378161180e8049bc84aafd8057f899a2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "37884ab275a94c9eb9be2b0ce73ef44a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3797d71aff9741e0b531af1ea8bcd9b5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_1aaee61c3dd944b8a1f7f3900215d872",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_6920056ec72648a3a7de8d7b571a3885",
+       "value": 0.8
+      }
+     },
+     "37b9866a8d2e49ad82c6aee97c43c306": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_25eac19c1f6e4d44a55f90ce2c0f40c8",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_caec6c5ba89347d28f126f526baff2ba",
+       "value": 880
+      }
+     },
+     "3805c14715ad4a2ca6057e38bb9a05d3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_300436b31b2143168d370f4096a4cd2d",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_d91c57445d4043cc85440265e42f49fe",
+       "value": 2000
+      }
+     },
+     "3848f53a073b47639d7157ee62de4eef": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_59e6ca1b20a140719e04669acc234287",
+        "IPY_MODEL_1b2e76ddf9c6462a89517b564300b907",
+        "IPY_MODEL_7e398ba0e1bc4366bbef39915d4e30fc"
+       ],
+       "layout": "IPY_MODEL_c3ffee83be43447f90203655c5ea9cdb"
+      }
+     },
+     "385a49d083b447a19a03b69907737efb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_129a8ef1510b48a0a04f2b84cb64f208",
+       "style": "IPY_MODEL_11e6a9730c7e4ad991efe63887597be1",
+       "value": "Detector (m), "
+      }
+     },
+     "386c360722f44e62b76b12ed0662530b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_8975e2cfa70c41b6a4d90c150d9f102f",
+       "style": "IPY_MODEL_49ce3fdb165c41b98f93be6d00d22d8d",
+       "value": "Outer Zone Plate width dr:285 nm"
+      }
+     },
+     "387950559631434db7e3715dc8cb41b7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_44686ff4029a4ff9a50c48e765d62dee",
+        "IPY_MODEL_5c3c83efd01e4b5c973affe855a8527b",
+        "IPY_MODEL_74bd64998aea40f6ac4f06805fbe8749"
+       ],
+       "layout": "IPY_MODEL_90aa766d53cc4eadbb69bf63659cf619"
+      }
+     },
+     "38900705626a4bba867f93eed3d5467c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "38931a9310794094a07e62a6bd84a9a6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "38a265b31b274fbbacc8a167e5000992": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "38e1eb4d7ef449b8aa6fafceedc9a53b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3947f9ca665e4b5a9b3f3b5a91d3b2e1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_3f65482e13044759946af234820feed8",
+        "IPY_MODEL_9752e911c01a4fe1a963345d0291d055",
+        "IPY_MODEL_37b9866a8d2e49ad82c6aee97c43c306"
+       ],
+       "layout": "IPY_MODEL_8cb2db328b2f4bb19462e83a645e87fd"
+      }
+     },
+     "39770f3dc8f54279998d180d5c8cac37": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_fa5704aadfa545ab8beec76fadeaa2b7",
+       "style": "IPY_MODEL_846b9d275a31464a8718115ce91711df",
+       "value": "Energy range (eV):"
+      }
+     },
+     "398782b77df24fedac2db6e899aab973": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "39b8df13c0814b9b9d3120c65c0ba23c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_ae4ac4ba726140508e8a3852b5513c4e",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_5d76e866550747d4805b5fd5164c796e",
+       "value": 200
+      }
+     },
+     "39bec103240a4871a2feef15c702b062": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "39d56a7031314fd1aa09c3724485d93b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3a03607fa899422dbf9a0813e0aaa6d0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3a0d9dce61864ad39894659a6eb39c91": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3a827646788b401f987a2fd105fba79d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_62469112d2f845b39887b823801a4e95",
+        "IPY_MODEL_db11b7b09f99411db03957767ff35c84",
+        "IPY_MODEL_88b4b39b821a47bda28df65bc88b2853",
+        "IPY_MODEL_feef6eb07064495c8db2d317cf3f2a6c",
+        "IPY_MODEL_be6a77ba38a54f8a9a5e0be52cfb80fb"
+       ],
+       "layout": "IPY_MODEL_ebb12ea3d5914b4da4bc53383bf17f0e"
+      }
+     },
+     "3a9dd5337eaa4a97884f3c638b324820": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_0251c0df4b024f9ca45461884c30836b",
+        "IPY_MODEL_08a77d3803f240e48633baf954ee29a7",
+        "IPY_MODEL_4b1cc60ef7a946cb84bad651ff71bd96",
+        "IPY_MODEL_85b54555539442d1b504afcee919ab41"
+       ],
+       "layout": "IPY_MODEL_6f1f2fef047d4cd790adcee3c836e11a"
+      }
+     },
+     "3aa2e8ca115e41689ddf7879824c3b3c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3ad0e209247f436f90297d3a413bf705": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_3bb12e00c0364900a11d33b303eadd5a",
+        "IPY_MODEL_986972c65e084add822b3ce913b6d7fb",
+        "IPY_MODEL_2264dcff7a094736aa732d482daeb5aa"
+       ],
+       "layout": "IPY_MODEL_169609d494534e6ba7bbe0a2779ee993"
+      }
+     },
+     "3ad2e92a26f2428098be513d368dfb1d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_4126841b65de4621b2d9f2601b82f65f",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_10094d8a70334565917fe15cbcc89f47",
+       "value": 1
+      }
+     },
+     "3b0983e96aa8459eb3511cce82c9566f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3b3dc4fa1ecb44569956685d0577e465": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3b56b9881b654df69dd38414d99b40db": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "layout": "IPY_MODEL_a7390cd6f5fb4a9db6ddec1b1b909128",
+       "max": 1,
+       "step": null,
+       "style": "IPY_MODEL_4389a82c92654cd38b12d086e889c55c",
+       "value": 0.25
+      }
+     },
+     "3b59a0f0b4fc43a39b93f6a226e4a46b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3b8244eb20584a91b11a87bddda10e81": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3b8a27aff50d45fcbf90b96cf177a1f3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3bb12e00c0364900a11d33b303eadd5a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_08576dad15c842968e4ebd45fe30a043",
+       "style": "IPY_MODEL_61b08444a7384a4389fc7440dd07597d",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "3c86a3b3f734491ab0f9c2f18911f1bb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_4dbfada6eb0041cab96be74432c11a08",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_1b6de1a2def74926b6ed891f2e7f9928",
+       "value": 715
+      }
+     },
+     "3c932985f0c84c4b8e4809f55014f0a8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3cc120ad3b664aaf8309891d3974ea00": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3ce47a8dfe594986a99be77bccd24d47": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_6dac7e8b25f24573bb89134069e36c03",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_ee70d7eca96a47879a6b8c1491038b2f",
+       "value": 0.55
+      }
+     },
+     "3cf54998af3d4a4e82328984c3c09549": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3d014c71c8184f798d753e98b7cc0a3b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_e6a951183026440a823d0ae2332f785e",
+       "style": "IPY_MODEL_928026ca4e9a4e048f9ac2c18385c012",
+       "value": "Membrane (mm), "
+      }
+     },
+     "3d025b5ef7564e81afeec3904d9bb86f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3d27be27db6843838e429f494c881562": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3d2d94092edb4c429ef31a5d771beeff": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3d69dcb5944142459a9739624f960588": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3d6fa9980ce6435f9a1d7f7776945514": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_b8f03880c3424c9b8f2f68ba16cbdd11",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_615cbfa3205444469576d49cb6e3809b",
+       "value": 0.8
+      }
+     },
+     "3d8a1fa4632b47fdb9e07125a22699f5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3d925617d0cf4f389c7c69e6b79b37a6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9c79054a6e1b4bd2ac3e075cb0162ce3"
+       ],
+       "layout": "IPY_MODEL_c4f654c3a66d4c7bb5cf0e3310fbd692"
+      }
+     },
+     "3db8d492b05b478cb28cd8936fb7f32f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3dd028afd1a24de9a55718a588d59e4a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "3e09fac7e2624ce0a752fecc1613f2e4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3e2c3d3959f641ca8c4ed49ea2caaee0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3e2ffef19f3846c79e1a65db08b680b1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "3e3ccd91d59645b78833dbe900e20e8b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3e93da9fb03541d1acaa19bb249cd77d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_aff3fb9e92fc4d39876e1372a1eedc1b",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_3063f6e573bf42efab788a15949d4bb6",
+       "value": 0.55
+      }
+     },
+     "3ea0036661f446f3a6b1c7ccb98b0375": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3eabf2a2920d42d4af395d57210ca831": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_249c3632265740dc994697afcebc0229"
+       ],
+       "layout": "IPY_MODEL_21edbaa9ea704b448d3350579cdd9974"
+      }
+     },
+     "3ef43d869aef4d028b35f93bab024db1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3f07b1e110d44f4fb589356b23473d4e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3f31c7a1b23e4b64bdc7fda289cfe352": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_99a957e0bf4b4814b3af916c67222b3a",
+       "style": "IPY_MODEL_cf3523438b1040858d50de58e9940793",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>735.57</td>\n      <td>751.10</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>735.57</td>\n      <td>751.10</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>735.57</td>\n      <td>751.10</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>160.42</td>\n      <td>143.60</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>160.42</td>\n      <td>143.60</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>160.42</td>\n      <td>143.60</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "3f3662d7c0c24780be4378e40eedfec0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_88ca49e7118c4927ac250721e7900c98",
+       "style": "IPY_MODEL_4e2bcee9964640d496374bb4495c02b7",
+       "value": "Grating Pitch:510 nm"
+      }
+     },
+     "3f65482e13044759946af234820feed8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_b790a7f3c0c5434f99ef687d27f95b8a",
+       "style": "IPY_MODEL_6fc59c9911c24e1fa246945191021b86",
+       "value": "Energy range (eV):"
+      }
+     },
+     "3f6a3f5ca4444ddc94d85df3b91797c2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_012d3362ca764ba69048ba63cbd73b7b"
+       ],
+       "layout": "IPY_MODEL_6413e6d40dcd4dc48c9521d5cd6c8f18"
+      }
+     },
+     "3f9266d3b81449f4b8f90fe275b14e5d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "3fb12cd3df2f425b9b58744bdb22a919": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3ff533efb91f4b21813456745a3b8ea7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3ff7f0f3112a4a61a5028b888cb61747": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "3ffa96a815b648a0a15c50a9cca1337a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_83fa4f56b4294e81ad54f4c561d995cd",
+       "style": "IPY_MODEL_114467652c3b4852b03ddcdc2c976af3",
+       "value": "Energy range (eV):"
+      }
+     },
+     "404465f69e734a6fb6ea228c02511811": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "408c774c010c4b0788ea2e54a1ea5bde": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "409d65a3770c47b896ec57b9f05ee24f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "40a0c92ee5d34e8fba02f471a834fd60": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "40a0d7cbf95a4a23959914963e7d8acc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "40b6f10d5f604a16878f6b8b79fd8ff6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_f6bddb15323c48059360da2cae00356e",
+       "style": "IPY_MODEL_0186bb58062e498f8e7c87f6ad4e44f5",
+       "value": "Low energy"
+      }
+     },
+     "40db61a90ae24a8a8014031776f3a7fa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_bed70c7195c8410f8b299b306ed0c8e4",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_e5fd84e35c5743ac965957c3c834cf89"
+      }
+     },
+     "4105c4eb7dc24794ac80cea920c2023d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "41180646d28c4851855b3b8bfb12b629": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_d19d74d001f5431ab64d25305d043bb2",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_5bf8361741514fc593b996d27d99492c",
+       "value": 3.1
+      }
+     },
+     "41217f4f88a248da996f8840ec1a938a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_58de85251cee476288e136c76392890e"
+       ],
+       "layout": "IPY_MODEL_7825e502abd64540a26e4ecbbcc1ee83"
+      }
+     },
+     "4126841b65de4621b2d9f2601b82f65f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4157cb6361e94427bfcb8c118907c23a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4216cc9ea7e54544a0ef47ed62350ad5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_ac3e3e1dd71541ee8e8f83be381b825d",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_914c8a1570f54bb8b2eb069a28009b40"
+      }
+     },
+     "421e4b2d0c5547cf8e008525d48ad765": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "4222d70735054cec829302c617a91764": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "42741c1f1687439c8c56fcfb5509e7d6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e3dc087266454e8b9723bb5563c135b0",
+        "IPY_MODEL_6c76f83bdfbf45f8a2c08e2de02eb22e",
+        "IPY_MODEL_5c73c1e1516a4e03b3a698077948fbc1"
+       ],
+       "layout": "IPY_MODEL_61000d745f3d4c7fa959074b87f20693"
+      }
+     },
+     "42bdf47fdf434de9887b09fe13f7e44f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_f3044b44da2f49ea95da6c7b8a5de1aa",
+       "style": "IPY_MODEL_65f7cd238fe04faea32418e78adcf616"
+      }
+     },
+     "42c281a7b4d84390bda07f2ace5735b4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "42e6c2fcf67d498582560f2725c1eef2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "42fe584421464cb6a0fa3d74c64d415e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "432a00d8414942928f6f667f327a6c36": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "433dd08d935a40a3abb00683d9ffa0fc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_b529c87c4ac44cd7af83f86a99975fa9",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_f292f72ff6584e15a449534631ab6b39",
+       "value": 30
+      }
+     },
+     "4344039d669e4078985fcb7faa63b942": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_8c79193a2079419586067f13a0b118b8",
+        "IPY_MODEL_85d5dae7ecf9429fbc4c19b7448f7dae",
+        "IPY_MODEL_dfab25c7da39473ca5468dded38b6b0d",
+        "IPY_MODEL_bef8dbe624dc4a01baa8a469e9de7652"
+       ],
+       "layout": "IPY_MODEL_9509f20093cd4a858d90059864c60070"
+      }
+     },
+     "4389a82c92654cd38b12d086e889c55c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "4393ae8743874d3bb4fa1060486b4fa6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "44240dbba0b04aa9bf03b568ad397b44": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_c3a93892e17544b68e9c7c4815b24ab7",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_b7b0c110ce7f4df5bf24dc5393f47bb8",
+       "value": 3.1
+      }
+     },
+     "44686ff4029a4ff9a50c48e765d62dee": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_70a7b447b4f543389c476c55a65a2d9d",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_03f91a0b41cf43419cbcc8e780f72fa0",
+       "value": 715
+      }
+     },
+     "447c6591ce484c5fa888bbef629c64a2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_4157cb6361e94427bfcb8c118907c23a",
+       "style": "IPY_MODEL_59701201222745ceb7daa9b4dbd47b02"
+      }
+     },
+     "4489e7023ebb4e8291c62aa548635c05": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_c024b058213e4f72b799eb6561a2af3c",
+       "max": 2000,
+       "style": "IPY_MODEL_a02eb837123c4d018359451d4a2d3764",
+       "value": 200
+      }
+     },
+     "449bf007280a4e6b84ed25891fa50569": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "44e0dde6a2ec459d8eee89f8207e48cd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_591aec1aa5f34366a405551aa47a6e17",
+        "IPY_MODEL_fef013802aef444fb8b20a4c71bd482c",
+        "IPY_MODEL_3ce47a8dfe594986a99be77bccd24d47"
+       ],
+       "layout": "IPY_MODEL_f818a612b38e4992acd0e0fbd454e7a8"
+      }
+     },
+     "450480f8b3044caea2f16f401857b43b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "45207426a1804dfab251acc0e7538b33": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_bc1ceeffd7bc4225aff10fca0a9afb5e",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_618035e07781437f9aab2aced16bc8a1",
+       "value": 381
+      }
+     },
+     "45815797b9f647a2abc0b813ad08bb22": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "45ff297c67d842b3ba4effa22cb23baa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_248c3318da67438295cc69cf8e6d895c",
+       "style": "IPY_MODEL_5978bb349aa84a51b636e7d071b56192",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "4637370959f04c02ad97d94b024cefd4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2299d432da3b40f09768b0c41e757631",
+        "IPY_MODEL_eb18e4385afe4d82ae921552d66cc9ff",
+        "IPY_MODEL_1450608de43e4a43ba514a048582810b"
+       ],
+       "layout": "IPY_MODEL_a9f6d17a229b4de1a282d7f469ebc186"
+      }
+     },
+     "46b7e70122084d1c98450552ad637e55": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "46c65c3babc14c31a8dd0a45433ffb3e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_832ac08b0af042abb56f26f430180cb9",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_8aabd04b11934f60b8699803b8885c78"
+      }
+     },
+     "46cb97af1e19442db2ebf21b0ec074cb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_35e8bb89ca0f41ee8cc2e7d883ebdf5c",
+        "IPY_MODEL_5637e121d7b64188a54b67ca30a4a4d2",
+        "IPY_MODEL_370b344191ff4c9dbc6f89793f989a8b"
+       ],
+       "layout": "IPY_MODEL_276c7c929a154216a39e781b6b9cf85b"
+      }
+     },
+     "46e704973b1d4872b32f536d19252e07": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_b2c8d9273e7e4284a4c1ec1d67e5a5f8",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_b13f2415d7674072b8f288556a2b158c",
+       "value": 34.5
+      }
+     },
+     "46ee5f4325fc41bc97f2a9f7672b3cc3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4711a9a9eb284ad088aa38d1c8f87f5c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "471b8f5ca66c44ebbb4645b9b6c4388e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_3379f6c0f25947319616981bd3d00215",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_ca7afb9df81046c8b84620c75b443529",
+       "value": 5.74
+      }
+     },
+     "474365a24770471bb09e0e288c23540f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_dba5b139cc844e8dafc73d50efb73532",
+        "IPY_MODEL_44240dbba0b04aa9bf03b568ad397b44",
+        "IPY_MODEL_605aaf7ed87d4a43bcbc9e351bd78b40"
+       ],
+       "layout": "IPY_MODEL_1ec1059b475b49559a8223b6f6373980"
+      }
+     },
+     "47583746ccd84efbb92ced48fe91959a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "479c04420a9c4db88676175966b6ddea": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "47a1ab1e832041a79ccdbd2eda8133c8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "47a5b738af254fbba63e82976c0cedcf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "4872e7f046024654bbb57f1e8998d561": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "487c675d9c6245ea8b11bcfb86de312d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "489464f4ab8f4fc9b9cb69c3fea3bab6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_ba21afbc680b4d0f895210b07c612514",
+        "IPY_MODEL_955d886573e644e7859071513f256b40"
+       ],
+       "layout": "IPY_MODEL_c8d604bc3af44535896eefbcd65491c6"
+      }
+     },
+     "48aca893471d4e538a93b4f1e8310941": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "48eaf9f4a32a4944920f67ee9ef6af1c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_b84c1cb4caba4acdbecb53cb1c1589aa"
+       ],
+       "layout": "IPY_MODEL_ba5ac17758a14a1491015a667ebcf7fe"
+      }
+     },
+     "48f889ed8bd64532ba4d4250bb01d9c2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "49439690b66646a9994643b1cc03a23c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "495064f89bb34bd89215bf023ed706dd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4995e0fc002a4eb2bc219c989574f706": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "499fbe08c0994ef9a0c322758183c953": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "49ce3fdb165c41b98f93be6d00d22d8d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "4a242ae65cb649d4a59743d266e610b2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_72d2ebedb8a64e9da20ce78b24abb864"
+       ],
+       "layout": "IPY_MODEL_2ddaf319161b4ef19a3a17a77b7dc65f"
+      }
+     },
+     "4a3b75ee430c4c54b59b3dd4939a6e4c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_dee156cecead4f6eb09a22e52c9bdc7f",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_cfce0ff4fe1248348ef2fdaeda9df8d9",
+       "value": 708
+      }
+     },
+     "4af3c147f6d04f33b23ef636174bb400": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "4aff20d454334bc592d4277fde34613f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4b0caa06a556497eb19e4eeb458cdfd4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_6217622efad84e15b962bed8c568a0d7",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_122c042830ff4c9095e9d511d6633226",
+       "value": 2000
+      }
+     },
+     "4b12a1f7be5e45ea87d9e1f63dfc5561": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_99aefb6c516a42e384cf8976381723bc",
+        "IPY_MODEL_00f2f96fb5344bb9a5c2f3657160dfaf"
+       ],
+       "layout": "IPY_MODEL_2708b18f36754c2083b5ab1e445ba0d0"
+      }
+     },
+     "4b165726ab97448cb23feacbbb94043d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "4b1cc60ef7a946cb84bad651ff71bd96": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_04d47b9e029645b082e6f0e366685675",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_5cfc88f75478422e881160d7a967b288",
+       "value": 5.05
+      }
+     },
+     "4b6d469e54854b25b042a9ec22af2e85": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4bc14086b6fb466f8782651b71fd5174": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_28438eaf444e46dc8d5d5ca99def3503",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_8dafc72f1afa474fa205a5efde5d64c3",
+       "value": 0.75
+      }
+     },
+     "4c14f1e226264c48a67c16a61b6dfd11": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4c1548e6a5f34afbbbe4939505dae44c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_fd8d275160864f46a658f845adfefd8a",
+       "style": "IPY_MODEL_6fdf6e5344d74acca75ca2b44b58ef53",
+       "value": "Detector (m), "
+      }
+     },
+     "4c5d238c36d34ab2896b909cc8a80da1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_6b9ac35710814b5390d3f1787d909f69",
+        "IPY_MODEL_9930ec49320842fbb3d2ec7655e6019d",
+        "IPY_MODEL_bee2fca98a9b472ca7f9197c589a8a14",
+        "IPY_MODEL_ccea9a0398714a68b2e156b4945d48fa",
+        "IPY_MODEL_1ae643ae8d174857b0f195064fb04527"
+       ],
+       "layout": "IPY_MODEL_dbaaa0e991d04123b83ca91aaf9fc749"
+      }
+     },
+     "4c7f7ee5b8aa41998f32801d2fbdf9d2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_68eda98b95c542fc98d02fb53c2a62b0",
+       "style": "IPY_MODEL_ee3acab9503940038e15b45cc76fcaa9"
+      }
+     },
+     "4c833b7146384dbd82855c611798f95f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4c84c9cf5e274f348ee1b42e32203ced": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_42bdf47fdf434de9887b09fe13f7e44f",
+        "IPY_MODEL_123065eeb16e428daae4a23bc15c40c7",
+        "IPY_MODEL_3eabf2a2920d42d4af395d57210ca831",
+        "IPY_MODEL_f2df510581a04eb3ae164abe9fdc08f6",
+        "IPY_MODEL_ff55576b46fe4b7b8e6e116aed8d2905",
+        "IPY_MODEL_1ce80fbdd6714b67909dd37a7f1b3649"
+       ],
+       "layout": "IPY_MODEL_b30d8ef36acc40478206c614adf7bfad"
+      }
+     },
+     "4ca2d0e6ae1b4e449da09270111fa6ef": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4cd57ad892ec42aea6c7469742efded9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4d1b0c910f4d48b284730de62778f1df": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "4d2b98c4b57f4b1587749da05f5f98a8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_581adce20baa40958cdc01a30b3ff04e",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_3d27be27db6843838e429f494c881562",
+       "value": 30
+      }
+     },
+     "4d3bfbd36905499eac51461c1501fea7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_05233531775b498487b66efe53d20db4",
+        "IPY_MODEL_a644e3143f2f46bba555aae33a65e250",
+        "IPY_MODEL_9ce359aa5d96409497530cabb885b32f",
+        "IPY_MODEL_e694b770d5f04a4fbef6ccb8f54a5d59",
+        "IPY_MODEL_e89b796452254e308b5637a883bbdd83",
+        "IPY_MODEL_08f56ceebe26404f8cc6c6a5f4bbe38a"
+       ],
+       "layout": "IPY_MODEL_76c4f326b9b04197ac7211df240bf03e"
+      }
+     },
+     "4d90bd3dd97145a6b0db24e6b77a5953": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "4dbfada6eb0041cab96be74432c11a08": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4dc5c797d6714f2796f1275624c817ad": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4dca26e49fe44f108a72943c687b8a7f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4dcc11aeabb04a5bb50f0023e301d6a1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4e2bcee9964640d496374bb4495c02b7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "4e48b6840cc746438be91ad34810610b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_237b7b0ac3c9481eb9b960894dd24391",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_b6a075d858f949d3bfc084675f7232c9",
+       "value": 2000
+      }
+     },
+     "4e53586ff3ac4b6e83852e1d4d437ee6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7437f469ccbf432987c1da395c4f79f9",
+        "IPY_MODEL_641d97aa5e5d479a918336911a1561f8"
+       ],
+       "layout": "IPY_MODEL_a3204ea53c344b7aaf6c823cb9e9e07c"
+      }
+     },
+     "4e6d9ce0cc9944eba03b6feedc314170": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_1699132b0c454de8a0d5a39cd85418bb",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_be36e48863a249a8ba0b327dd72eb1e6",
+       "value": 2000
+      }
+     },
+     "4eb0e0dd8cac4bc1bd2eaa9694ec5b65": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9cb4697533b7404bbb704a0bb171a7dc"
+       ],
+       "layout": "IPY_MODEL_a548fb795fc1463fb253d5652f20fae7"
+      }
+     },
+     "4edca99839534b029037dcd11f9449bb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4f113ff10b384744a4655290e4c471b0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4f3a9b5119d444c2912382f6a62af6c0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d62221e013d94b828fd8ff3fceae368e",
+        "IPY_MODEL_3225617289a444a8b12efa90d3c3ea21",
+        "IPY_MODEL_b1d4f2b6c953467eb477d4d89167c8d6"
+       ],
+       "layout": "IPY_MODEL_c3bcb24daf824799a0468a1280ff6ad9"
+      }
+     },
+     "4f5a7b4afadd4fd7837e4ef310e6cb00": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_0c8bd55780064c3697784363b3438380",
+       "style": "IPY_MODEL_ac8a5e40fc244c9aab19134cc7ba02b2",
+       "value": "Detector (m), "
+      }
+     },
+     "4f8d7d3eef7747eeb0dd3053fe41b1c7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4f9a2c86e94b4620a7a920090374d50a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "4fba4b26317142958d99a97fd1c9bb45": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_0680bdfffe094e00843b5528e1fe4bbd",
+       "max": 2000,
+       "style": "IPY_MODEL_ddbeca41af4143d3819506ddfd3b3a1f",
+       "value": 200
+      }
+     },
+     "4fbba19df1444690bcb87b476c7dc63a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "4fdb167de4474792abc7c3c8f87e3210": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_4dca26e49fe44f108a72943c687b8a7f",
+       "style": "IPY_MODEL_a439da1b5dbe460fae6716fce1533e1b",
+       "value": "Detector (m), "
+      }
+     },
+     "4fe14ce208b9490a9c6dc1205cff5fe6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_eb53a5b3370644d2a8558b7080aecf71",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_8cbc34e506cb4beca035219c44d168bb",
+       "value": 54.74
+      }
+     },
+     "4fe30845102041e1bae362d4159292da": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_7b0069dfda3a43699f393c4cd94f5535",
+       "style": "IPY_MODEL_8f3c26c4ef3d477bb326310b69c3ba00",
+       "value": "High energy"
+      }
+     },
+     "5051358690854107a146ba28395430be": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_af47df33f28543278dc0dd9782945063",
+        "IPY_MODEL_1b21264edb82442bb2e3721693fd324f",
+        "IPY_MODEL_eb0c14c717f1403d828b152666086d06",
+        "IPY_MODEL_b5f8448b81d44ca5a64933adbad9fda3",
+        "IPY_MODEL_db1206a4284e4733ae23bcf98dc9ca64"
+       ],
+       "layout": "IPY_MODEL_d444ff2c9d084276ae77b336114cf070"
+      }
+     },
+     "50514dde8aba4ecbb2c713993692efe1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "50582c3307ad48288f38f87423b35577": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "507b47758a5243f3936dcb6de969da6f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_57a76eb2bebe4836b011cfeb18dd83d0",
+       "style": "IPY_MODEL_cefbe4ec49bf49f6960301eb1be1be7d",
+       "value": "Energy range (eV):"
+      }
+     },
+     "50840e29b9794dc19fbb435affe41631": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "50cc4a13de4e49e8a3b8a17b1cd8adb3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "50cda55ef7a644b9bbcd5581bf80d8ce": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_b199cb7342fb4545907c788a2ec7005d",
+       "style": "IPY_MODEL_1c4b68e0f6d2403ab0f85da582ef6136",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "50d7bce775d54ee482586e1feff26968": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_0a2ea7d2354a4be498242128b5418a2b",
+        "IPY_MODEL_074fe9b1a97147c6b5c869648b0b9675",
+        "IPY_MODEL_6bfbffbbff5446e6bba1d8737badfb33",
+        "IPY_MODEL_7869a5302de14f2e9d3837bc144b865b",
+        "IPY_MODEL_326ba9b0b3084fd88354e738b31db85e",
+        "IPY_MODEL_00b71be1c2544a62a4c8e4a52b52d673"
+       ],
+       "layout": "IPY_MODEL_b6f705feaf464b1ba7210b52fc3ee597"
+      }
+     },
+     "51972633238e4e64be478f7551c386fd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_d1235bac8f2f434582186d546d1d4864",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_ec51ee6161bf462aa45f8a73b3db37ca"
+      }
+     },
+     "51b21d368bea4e12b9745ecc0f36d0fa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_39770f3dc8f54279998d180d5c8cac37",
+        "IPY_MODEL_ff550453a3444628888b482998d3aac2",
+        "IPY_MODEL_a5670804c8c84494963f22ec27662502"
+       ],
+       "layout": "IPY_MODEL_e7d010435f874558aec715a28db5bf22"
+      }
+     },
+     "51f1219c2ed848bab74be6c98ff85d1f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_e6cd357762054ee89f7031294dc427fc",
+       "max": 2000,
+       "style": "IPY_MODEL_b651be26532b4ec3be5387e3ad97d52b",
+       "value": 200
+      }
+     },
+     "52467dac1e244eb7bdc55d3123e872a0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_ce2e3d0e73c7465f9925ec5ca2c6e642",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_fc660764407441aba08ed71b6a170ad8"
+      }
+     },
+     "5283be70ed57424882ea78626a94ab56": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "52beb4fba4024d4f89cefa1338814c70": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "52e10c51abf74ba1818bbddb7a987ce9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_a7e59ce166d0454c9f43694935c50d27",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_1a00c50eba8b4a298f968e4142473410",
+       "value": 1
+      }
+     },
+     "52f5ae45a3644466858069d8d68e60f9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_13e095f412a842d5bc3e2f53ea927420",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_5cde1bbd95b847968081134e707c0b77",
+       "value": 30
+      }
+     },
+     "53444a4da488436786c0cb03405c668d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_b08f1dcf92fd436eae1d3cb21498aeb4",
+       "style": "IPY_MODEL_9955dbddde9548ad86722d416616709a",
+       "value": "TZPG (mm):"
+      }
+     },
+     "535dcc3b907f414985f74e5bd132cb36": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "538297c5e46b4b2687f6a6f67493f8bc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "53b73e9192c4448ab2f12b5c146797ab": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "53beaddd73414cbe99519f2dedb47393": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "53c81ee3f9cd4be09dfd33f483e9a1bf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "53d7df892be14687935be35ac1e08ccb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_2371514924564f4bab3fd15f793943bc"
+       ],
+       "layout": "IPY_MODEL_3d69dcb5944142459a9739624f960588"
+      }
+     },
+     "54507b90e7f74f5a98fe630354a28d73": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_18a6857b0cbe4ec9ae74ce40c9b68820",
+        "IPY_MODEL_6b91093add0b4d05843793be6183249f"
+       ],
+       "layout": "IPY_MODEL_017c7834dc3f4d76aa2bf237c942e53c"
+      }
+     },
+     "5456552b22a844f7b316707ec112cb1f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "54983aac37584af3b73c23a60ed2830d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "54c7ae13851c43509acb9c19fc6fe804": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "54f2730a77494764a5e2cbf3cdb65b07": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "556c9f2873f84e85bbfb8c469be78816": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_2a97a11a25d3404ba6b2f5a67f4fa07d",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_fa7aeee02406408581688e0626955748",
+       "value": 381
+      }
+     },
+     "557911e4a3ea42a68b72e98c0186e540": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_99b8916ecb364806806b01551062faef",
+        "IPY_MODEL_4489e7023ebb4e8291c62aa548635c05",
+        "IPY_MODEL_5ac8198505c84264be4958992d4c5a4c",
+        "IPY_MODEL_fb5daf42b94f479c8c79b17393cab5c0"
+       ],
+       "layout": "IPY_MODEL_ae34631a85eb4cf2b4ee06968a465417"
+      }
+     },
+     "55821564bc5f49a4918818eef5273625": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "5592a96ce0f74d5882b1e3fcabed15fe": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "561408052c774c3d8e0f24e30223f4db": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5637e121d7b64188a54b67ca30a4a4d2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_4c833b7146384dbd82855c611798f95f",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_ffc6518e02924afbbff504ebd07da4d0",
+       "value": 3.8
+      }
+     },
+     "5650b5be034f4382a13b584c80080a51": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "567a48e881104804967bf8cd9bb734e4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_14d6e9ed68e4416887d9187c1df4ff2e",
+        "IPY_MODEL_41180646d28c4851855b3b8bfb12b629",
+        "IPY_MODEL_34e0c59b21db49708e9fa3592b97b972"
+       ],
+       "layout": "IPY_MODEL_6393e13838084ce8956035fd70c40c83"
+      }
+     },
+     "5685bd0d457647a68c94384887a8fc6b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_67375f3242b24a998730390e6c958810",
+       "style": "IPY_MODEL_d3e4642549714ec38a08f1acbf5666f8",
+       "value": "Low energy"
+      }
+     },
+     "56a9d501ac0240979e6b624c177f8f10": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "56b8130e1c424ba681ff47a5de12e70d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "56ddecedd0724154ac3a9f9d6489e256": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_2bacd30f2cbf46308fb647e47b5a35b1",
+       "style": "IPY_MODEL_d1922d60300a42a3886e72bba7956e2e",
+       "value": "High energy"
+      }
+     },
+     "5705f04ea026437c982cfd3848cb6be7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5713d6a7bb6649958930d5a4babd9c36": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "572caa6f60c048f3a93034925847b97c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_14e115fb9e4a4359a3befd2bcf1d2961",
+        "IPY_MODEL_6f8524ca04164ee9ab984d8ce7e4e826",
+        "IPY_MODEL_db89a93a3b584e228dbb8dd3b067e4cd",
+        "IPY_MODEL_df68991c32b84dceae169ea4d8ebcb4d",
+        "IPY_MODEL_07609125fcd549ed8dd78f325ca571a7",
+        "IPY_MODEL_41217f4f88a248da996f8840ec1a938a"
+       ],
+       "layout": "IPY_MODEL_f5d374adfab24c8ea47c197e155d92ce"
+      }
+     },
+     "573cfa3a9fed46a1a7b26765c58ab7ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_ae362f912cfc463db0b0a70423942f72",
+       "style": "IPY_MODEL_f7a3a87664464c839fa1f6ecb7985e40",
+       "value": "Low energy"
+      }
+     },
+     "5797f37233264248a1fb7077709c4b4e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "57a76eb2bebe4836b011cfeb18dd83d0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "57d55192ca9d42af9fb421f538662121": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "581adce20baa40958cdc01a30b3ff04e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5825f2c2d8df417ea6fc13d71b09e69e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "583d9007e97249d28d4e195dee78c9b4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5897357f4c9e4c41ae555c3b867b831a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_0a8a6a1564674cc0aa6b0590cc8bb9b8",
+        "IPY_MODEL_03c2c919a5a64eccaeaac4f329aa8f3a",
+        "IPY_MODEL_bbb49d3c319b414eadcec01dab6f927f",
+        "IPY_MODEL_6027f91c3eec48378685abb40e233eaf"
+       ],
+       "layout": "IPY_MODEL_d0e6d423d5094797aa8e07b50361ac10"
+      }
+     },
+     "58ba155869fc4095a9d81345425d1db6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_788306dcf7d4455985e34c9a93eba1c3",
+        "IPY_MODEL_d70fc0960425408a94f27cb1f32e6170"
+       ],
+       "layout": "IPY_MODEL_b7cceb85700347bfb13fd866b2da1ebf"
+      }
+     },
+     "58cb64efebe54fc0b9171c33a370e3de": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "58de85251cee476288e136c76392890e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2fe900722d52458f90e88fa9900ca35e",
+        "IPY_MODEL_1718e31a328d492ab6b63c3a64b78d98"
+       ],
+       "layout": "IPY_MODEL_cb52538c58c84992a7493cc0d48227ed"
+      }
+     },
+     "591aec1aa5f34366a405551aa47a6e17": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_e98fbbae13214f0bb5619ac287f91467",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_49439690b66646a9994643b1cc03a23c",
+       "value": 785
+      }
+     },
+     "595e6e1bc68a42c9920f03ccd6838076": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "59701201222745ceb7daa9b4dbd47b02": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "5978bb349aa84a51b636e7d071b56192": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "59a00cdd56e54b338987b4d555f4a544": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "59bc1dfa491441628ea4b21b7ef0bf43": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "59e6ca1b20a140719e04669acc234287": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_630455286ea74f27b6aacbdb54bb0490",
+       "style": "IPY_MODEL_c373d0dfa59a4783b6f6910ebcf2e688",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "59e6dc1307a040e7aa354e026036ff77": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_7e28faf7094f4ab49617ec548a6687a2",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_0e1bf212a7b142749ca16f1cf43ca486",
+       "value": 30
+      }
+     },
+     "59fd145400d147c39789f66ec644c3f1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5a616074200840ba8712b75400b315b3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_016ca90651404e25970d8d226ee8cb3a",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_5de82d0245ed4ebe8eb90de7bbe4f0ed"
+      }
+     },
+     "5a865c3ada36478ab3d1b9bdbb7f6c3a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5a9ebf28431445709ef397e566112a1d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7be2150ad247489c8a2c3a50e05d6028",
+        "IPY_MODEL_e8324bee2aac45b18b2c6c2e57d4b959",
+        "IPY_MODEL_1aa69aa9e5244a7f9a0c3b3a5e01cf2b"
+       ],
+       "layout": "IPY_MODEL_dcebb47e02a247ec87ec753dbeef0d9e"
+      }
+     },
+     "5ac8198505c84264be4958992d4c5a4c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_3cc120ad3b664aaf8309891d3974ea00",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_12b8e0e181b244bf899712082f8137a7",
+       "value": 5.05
+      }
+     },
+     "5ac9db84c3404043b38419121ae397c2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_2bf684e1456d4b62973a02a4b8bb27f3",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_15fb27b9a26c494a8415b0116be3d880",
+       "value": 0.5
+      }
+     },
+     "5b18153b372d47a198910e274d5c4ad5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5b238da8103e4664b582e0094d5b0c85": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "5b402bbcf0684b7795a572b4df075d80": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5b778f4d3610484ab5e7d6c514ed9527": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_bea23b4f4ef24bee953da3b6e05ac0e1"
+       ],
+       "layout": "IPY_MODEL_ec72161b1c2041c4aabb4a6f65ae4936"
+      }
+     },
+     "5bd0835e78fd40c39bd65389723732ff": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_d526813200f84bcc88ad0a9167714604",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_b819b272c70543b3b9000fe6b67a8c7c",
+       "value": 200
+      }
+     },
+     "5bf8361741514fc593b996d27d99492c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5c3c83efd01e4b5c973affe855a8527b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_eb301f908a5445088919db027b4f3a41",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_75ac3f77a29648589f22787be5bf20f5",
+       "value": 3.1
+      }
+     },
+     "5c46e769d88e408fae21b2160aefd4e2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_11e2f69fefe145659944169598271d70",
+        "IPY_MODEL_4b12a1f7be5e45ea87d9e1f63dfc5561"
+       ],
+       "layout": "IPY_MODEL_f5780e842e0445698734de1b453cbbbc"
+      }
+     },
+     "5c57a5bf573540558a3515082883fb2f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_5ffa622ab7494959b3bd80b6032926e4"
+       ],
+       "layout": "IPY_MODEL_1c47e5f03e8e49b7b5b1d27c75ecdfd8"
+      }
+     },
+     "5c73c1e1516a4e03b3a698077948fbc1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_96c68bff2a7d413883e7d256175cb40b",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_dcfbcaf2d22c4b279cafb1149bec9222",
+       "value": 0.75
+      }
+     },
+     "5c79458e71b94c37a8d9a320d450b21a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5c8efdd7dcbd400bb115cd91e33d68e4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_232298db42424a7791719f9e13857717",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_6dd4708d40204c93b8d4754dec3430df",
+       "value": 381
+      }
+     },
+     "5cae56fc4a7c4592985145dc83b2f478": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5cde1bbd95b847968081134e707c0b77": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5ced2b25875946eab59e8292909f9589": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9df7ce1b3a5b4f0d8a883398e8833545",
+        "IPY_MODEL_bf22c8e8e6cd4a9796f358f5b30bd54b",
+        "IPY_MODEL_98409ddb1623443a91565c30c3ce7ac2",
+        "IPY_MODEL_5bd0835e78fd40c39bd65389723732ff",
+        "IPY_MODEL_ec6fa19a06d84f4c9c9a72e833dabef0"
+       ],
+       "layout": "IPY_MODEL_77a074043f0740ec98c113178ab1d0c5"
+      }
+     },
+     "5cf8f47c841c4a7d90d3603c3ed165ff": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5cfc88f75478422e881160d7a967b288": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5d6c427aa32544058966dcf374f4f0f5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "5d76e866550747d4805b5fd5164c796e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5de82d0245ed4ebe8eb90de7bbe4f0ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5df1008168204fb797b310d924a20bf3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5e3c35f9417f4631a9fa368bc68e5f1c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5e72a42662a94d22a39befd92d5c1562": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5e75c8a64ede45cdaec0176d77894301": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5eaa2ea30dd4493fb64ba24321d87a81": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_5ced2b25875946eab59e8292909f9589"
+       ],
+       "layout": "IPY_MODEL_d7f669a2523e449b97cb7b6c70880e29"
+      }
+     },
+     "5ed47d5c096c4f9f8548c6e208366a32": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e33d3f49bbdc44de9eae1c3bad941f8e",
+        "IPY_MODEL_489464f4ab8f4fc9b9cb69c3fea3bab6"
+       ],
+       "layout": "IPY_MODEL_fa934789640c4bc198e4e47e01446e76"
+      }
+     },
+     "5ee90293502c4dfe884f87bcfdf67f9e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "5f18b6c4e9f8492ebbebc565d1fee55f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5f3104fa1e31475498d7e2f2fb104cfb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5f38f060e7074c96a62e6b6d7b97fd66": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5f98741111cf4e52b283d5c0659d118f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5fd1b4729e934f3796ec6d998a499727": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "5fe2d3701e18438ab6d7abce1175653b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "5ffa622ab7494959b3bd80b6032926e4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_bf60c8db2c74400a907401904a7d44e1"
+       ],
+       "layout": "IPY_MODEL_4b6d469e54854b25b042a9ec22af2e85"
+      }
+     },
+     "6012c4621b4a46eaaba6b77b01c23ec3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6027f91c3eec48378685abb40e233eaf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_65d7f9f699494ab3bba7917217b6e418",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_98823a677eb84d28b5036d297912c587",
+       "value": 5.74
+      }
+     },
+     "603f2212748f494a83413a71c8c20bc9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "605aaf7ed87d4a43bcbc9e351bd78b40": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_bb1c1ad990b44267a4938c6215982974",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_40a0d7cbf95a4a23959914963e7d8acc",
+       "value": 0.55
+      }
+     },
+     "606351fc62934e7cac7a75a5b4651b95": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_6012c4621b4a46eaaba6b77b01c23ec3",
+       "style": "IPY_MODEL_9f0d05507c1e4bfe9de677ce8501b2eb",
+       "value": "Grating Pitch:510 nm"
+      }
+     },
+     "606e9d5fefb3484999600243c7a1a3c7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_9922e7244f2a495e85b3bcff2ad120d2",
+       "max": 2000,
+       "style": "IPY_MODEL_85f82b02058f401ebe1747974358554f",
+       "value": 200
+      }
+     },
+     "60e435025261424a8e39316c6cd3d251": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "61000d745f3d4c7fa959074b87f20693": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "615cbfa3205444469576d49cb6e3809b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "617b92ab7766469fa9363b597dda5f46": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_3c932985f0c84c4b8e4809f55014f0a8",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_757cc7c996cf442f93ab75d1921c5423",
+       "value": 30
+      }
+     },
+     "618035e07781437f9aab2aced16bc8a1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6188e1a0316643b0a7bee8e26e57c69d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "618eb49f877e4c68a5413aff3248de38": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_656d93b801314b6c9447821d4f532f36"
+       ],
+       "layout": "IPY_MODEL_778bfc527d294600bcdd34b857591d0c"
+      }
+     },
+     "61b08444a7384a4389fc7440dd07597d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "61f547a8952140d48ee6c07c5ea28587": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "621213403bc04ab580eb4fbac6e9dc48": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6217622efad84e15b962bed8c568a0d7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "62458e9de9be4b41a8527a92f62b8b8c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_17d4e80f6ee04effa939f0cbf39fe0f3",
+       "max": 2000,
+       "style": "IPY_MODEL_fa5401be67da47a0811bd495b4a94274",
+       "value": 100
+      }
+     },
+     "62469112d2f845b39887b823801a4e95": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 5,
+       "layout": "IPY_MODEL_2f338612194147e89b90c1b37a8bd49a",
+       "style": "IPY_MODEL_1799dfdc47944f25b139de39caf8ca15"
+      }
+     },
+     "6274f0ae62f942e5a8a205663aca0518": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_056bd0702d324fe992d497ff680c4b28",
+        "IPY_MODEL_0c621d0fc0e0487d94f21458c2c827ed"
+       ],
+       "layout": "IPY_MODEL_bf31392c0d5c4b719f34c588db583d32"
+      }
+     },
+     "628b0e7524c34249b3f8d4cb009936d2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "62b0f354406f450db07bafd2b6923c99": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "62e0414b817443c99d417cb5f3558d44": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "62e1dfc160a24aea9b640c8e2c8480d6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_b7b6754e19fe4a5ebce2d0f51447d9d9",
+       "style": "IPY_MODEL_7a2a3e84e0894ec0bae9f774cc983823",
+       "value": "Low energy"
+      }
+     },
+     "62e70ab0954240d58af939a4aeeb43a7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "62e7d59c129b4e3ea8416a04dbd4d128": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "62feccdc7361441687c6fe70624a5586": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "630455286ea74f27b6aacbdb54bb0490": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "633efedd701147da9101660090322ff1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6393e13838084ce8956035fd70c40c83": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "63bd698de64543938d25a2b5a93993d7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_709145b12c43460e8ed571e86c8fb012",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_b335f25ddee4414eb1a4fec7e175ba53"
+      }
+     },
+     "63c34085916d41d5bec8cedd6d27b9d3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_1b75fcbdc16f47519c5385abaca3635c"
+       ],
+       "layout": "IPY_MODEL_1f78ac4fa88a49429f06446eeee7eb02"
+      }
+     },
+     "63c7fca8b44444d6a9b49a4c7243c38d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "63ddd9d071cc499bbe28d286ca01d093": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "63e91e5efddf4799b22dd03cc0c98703": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6413e6d40dcd4dc48c9521d5cd6c8f18": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "641d97aa5e5d479a918336911a1561f8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_dea40f7fbbfa43559c6c9f57eb6d6ae0",
+       "style": "IPY_MODEL_7cf45bf486b7423caf38cbc5b35dc512",
+       "value": "dr"
+      }
+     },
+     "646caace03e244e7b57f2fe02eae3b4b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "64bea122107d4c9187a468d4be19b5bf": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "64d2540d3ede45a1bc58b5bb21ca232c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_557911e4a3ea42a68b72e98c0186e540"
+       ],
+       "layout": "IPY_MODEL_99a48d7399074be6a9daf7e1d74da59e"
+      }
+     },
+     "64d7ebb4eb924e0aa76c84fc0dbeef10": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "652f7e2b1fc64b5587d6a8fc3a1c07e9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6558bd02d8ce458c87aa25c4501c9249": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_c0e785e141a9448f90a131b5be2b9cf0",
+       "style": "IPY_MODEL_9277a071beb04b27b2508731f0bd7d0e",
+       "value": "High energy"
+      }
+     },
+     "656877d49bda4ba7a29883308f5c2563": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_1598528d903d4be69a728aac3daa7cc0",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_3b8a27aff50d45fcbf90b96cf177a1f3",
+       "value": 3.8
+      }
+     },
+     "656d93b801314b6c9447821d4f532f36": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_07770ae5f8b24ecf882da1e47963f6f1",
+        "IPY_MODEL_c8380130d3cc478bbcf98189e4679800"
+       ],
+       "layout": "IPY_MODEL_2250dfe7d74c4bf69a16a0891f510aee"
+      }
+     },
+     "65cb339a38ae4e299b9f7f87dac2da61": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_c45910f261204f869a0b31cd84e9e796",
+       "style": "IPY_MODEL_52beb4fba4024d4f89cefa1338814c70",
+       "value": "Grating Pitch:510 nm"
+      }
+     },
+     "65d7f9f699494ab3bba7917217b6e418": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "65dde25404224440bfa734aa3dd8ac0f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "65f7cd238fe04faea32418e78adcf616": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "6606cd77d25743e1ac50cacdd54c5216": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "66297e690efa4cc3921f1384d650f4fb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "666b12f62b9c49519b21a8beef8a8740": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_0be6954b97fb43f7b33895c8f21bf7b1",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_f2afa2fc841a4e768453c3b2871c8e67"
+      }
+     },
+     "66983998e0fe44d59c145bb03d2ba626": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "66a5722186e24bec8cd950cfee9431fd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "66aa3d72060142bfa4b918772fe7760b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6728aac8449545d3be02c35d1caf2a9b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "672eaf56e5134f1d88fa05b8b3f05c6d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "67375f3242b24a998730390e6c958810": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "673a124bc27143fb9454b08c0fcbb053": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6740e199088b4323b5694df0b1ec5652": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "67b77c19d6b147129b846ee361ed8ae6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_4c5d238c36d34ab2896b909cc8a80da1"
+       ],
+       "layout": "IPY_MODEL_83168b94a7a443d9b13a0ad1dbff9e1f"
+      }
+     },
+     "6853cce1a96342ef839f0e4878622b07": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "68da1449af0f44ba92c1c30db1beb664": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "68eda98b95c542fc98d02fb53c2a62b0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6920056ec72648a3a7de8d7b571a3885": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6932c7eb2c3d4235a64207d024374594": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "695dc2f42d2548348b1e8a4615ba1e2e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "697a8cb7e15c4f3fa92d537790c57894": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "69a89ebaf5494f0d9496fbdab8734a38": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_d285432f89d94c1a8b1db22fce8233cc",
+       "style": "IPY_MODEL_cd45f126c13b47bcb3dbfa1dcc293c1f",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "6a205a2b56154ab890e5470e45cc10e1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6a875258000f483db3e3d01599457bda": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9d702972085b43829708abfeae396380",
+        "IPY_MODEL_9b25221096644274ae8da394b45fdafc",
+        "IPY_MODEL_67b77c19d6b147129b846ee361ed8ae6",
+        "IPY_MODEL_f8fbc130fe844bf296cf579a9ad0345e",
+        "IPY_MODEL_c446fb3be1df4deabbc1bed5a8dab7a5",
+        "IPY_MODEL_c1eee4b29a234915a7e975de3d740ed4"
+       ],
+       "layout": "IPY_MODEL_4105c4eb7dc24794ac80cea920c2023d"
+      }
+     },
+     "6a9c8b8021ae4a90b3ce75abbae41ffa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6a9e2f0becb3400aa9c24ff618848146": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6a9f6662311a4298955b7e17a31c04ac": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6abf7cfe5d2247ac98f70d36701923cc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_2ee6e8a9b74643db89e892c28d4d3782",
+       "style": "IPY_MODEL_70b33b7eb8aa43158457b664ba408091",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>6.70</td>\n      <td>11.75</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>6.70</td>\n      <td>11.75</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>6.70</td>\n      <td>11.75</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "6ad167c1bdc54d578b95d597819f34ec": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "6af74ce5fdda4d2a8ead33c498d14549": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6b24bcf61ead40d8a567cef11c2f34c6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_9f7c231966c84fa88d34407f64c86c91",
+       "max": 2000,
+       "style": "IPY_MODEL_b3a1bf04e9b04fd6bb9b2e52d37d8a03",
+       "value": 100
+      }
+     },
+     "6b357855a7e44bb29aff4749bb577361": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_6a9c8b8021ae4a90b3ce75abbae41ffa",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_933621d1b8704bf9b5a6dc12931934a0",
+       "value": 1
+      }
+     },
+     "6b516557c538447c98820eaf0055014d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6b6730a3e2ca47d69c70808668364ffb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6b91093add0b4d05843793be6183249f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_93a50a3d9b204a4eb5e863d0e0b58529",
+       "style": "IPY_MODEL_97bdba3b45f94f94aee5a8248fa2e2b7"
+      }
+     },
+     "6b9ac35710814b5390d3f1787d909f69": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 0,
+       "layout": "IPY_MODEL_10ba9fcc038c4eebba98bbc3cd3a1291",
+       "style": "IPY_MODEL_23c6b61c5aa044d097d7fb8626a42df1"
+      }
+     },
+     "6bb9771a31f443bda50f8853d604ab17": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6bfbffbbff5446e6bba1d8737badfb33": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_048a4d04e51b444d88f945e1fc23da18"
+       ],
+       "layout": "IPY_MODEL_5825f2c2d8df417ea6fc13d71b09e69e"
+      }
+     },
+     "6c21e1e3aa444edc935e548d6fb85333": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_d98582c5009a4fa48737390ea3a51ca0",
+       "style": "IPY_MODEL_e3877c40c3a046889ba89c9de0a8805b"
+      }
+     },
+     "6c516c02c37d4b51ad025063b095ed12": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_868a3c4aa7cb43cd8fcaeb4f8de45f7d",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_0ebf2c17da5f42f0a577bd78a3add84a",
+       "value": 381
+      }
+     },
+     "6c533682af4540ce90de8888569de65d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6c76f83bdfbf45f8a2c08e2de02eb22e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_105eb91256d6476dae5da7d596be6520",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_d13d6d580da74973814e85dc32a62290",
+       "value": 3.8
+      }
+     },
+     "6cb7492afb184b90bc2f050a0d1b4f65": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_d6edd628d87b4426a5c8d875adb0fb5e",
+       "style": "IPY_MODEL_7796f74844834a0f98827e427fc26ad7"
+      }
+     },
+     "6d007f0ead504aee9055ebb33717250f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_a192534a81034bb6b9962c7f4c17dcc6",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_7b345aa771484aa48ea2522e1c91028d"
+      }
+     },
+     "6d4add090f9b44f8987b29406f529fa9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6d6e6bfb8fc848d2aa064d3b1054a5c8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_aab99d5a938946de8a04be5fae3f5eb3",
+       "style": "IPY_MODEL_dee91559234246268b9a0cff27b0653e",
+       "value": "Membrane (mm), "
+      }
+     },
+     "6d7628b1ca874e78baf9edacb250e117": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_ad99e43a80c942219c716739f3db21a0",
+        "IPY_MODEL_3085fa1e06244f33a7a399a21092db9c",
+        "IPY_MODEL_8e0a36d43f9c45bfb7faaa7bc1497b1e"
+       ],
+       "layout": "IPY_MODEL_6a9f6662311a4298955b7e17a31c04ac"
+      }
+     },
+     "6d7ff6224ebb4562b0c401fc874afa85": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_50cda55ef7a644b9bbcd5581bf80d8ce",
+        "IPY_MODEL_6d007f0ead504aee9055ebb33717250f",
+        "IPY_MODEL_63bd698de64543938d25a2b5a93993d7"
+       ],
+       "layout": "IPY_MODEL_9a988d72335d407e85c49b51c743d8c9"
+      }
+     },
+     "6dac7e8b25f24573bb89134069e36c03": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6dd4708d40204c93b8d4754dec3430df": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6dd7ae3e035e46cba6912afac9eaa442": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6e8170f01b0247a2ad49644964be4558": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_ad76cc84e78e4a0abffd084f0ae68c8a",
+       "style": "IPY_MODEL_6ad167c1bdc54d578b95d597819f34ec"
+      }
+     },
+     "6e8a2020b9a64fbd8893d74a32b83e08": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_63e91e5efddf4799b22dd03cc0c98703",
+       "max": 2000,
+       "style": "IPY_MODEL_2123fb46cbd34a70abcde54299a98a2e",
+       "value": 100
+      }
+     },
+     "6e987c0ed71946c787514414636cc342": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6ead73290555442badc69fe1b5ffc061": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6ec4407897944dd0bfee06709c3f9689": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_db268d2e3ef747aab857f5d8801f23c5",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_6fc35d86d2a64e65865c41e1dc5cfdab"
+      }
+     },
+     "6ecf6dccbc7f425c847e9d2afa07e5d7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "6f1c16b5efd84869b59d01be62213626": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6f1f2fef047d4cd790adcee3c836e11a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "6f8524ca04164ee9ab984d8ce7e4e826": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_ca9fd49900314cda92953d73f031e333"
+       ],
+       "layout": "IPY_MODEL_844e3798130f4cb4a78afeca233dfa2b"
+      }
+     },
+     "6f9684b551b7481a95aa831f0d21b9a7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_1517942f22354fab9f5e81a44dac2c50",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_29e176f9faa64933b6e895da01688c1a",
+       "value": 0.8
+      }
+     },
+     "6faddc7996114b76839e5c9079bbcfc7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_e660024ad715409792f8aa97d62557bf",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_5e75c8a64ede45cdaec0176d77894301",
+       "value": 880
+      }
+     },
+     "6fc35d86d2a64e65865c41e1dc5cfdab": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6fc59c9911c24e1fa246945191021b86": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "6fdb3b4ecfed427c9ba22f8e311a4b91": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "6fdf6e5344d74acca75ca2b44b58ef53": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7011433627b44d0f8055a5ce303ba875": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7018c2a8a0c9417a8b99998a7f3bd140": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7033331c9b6c4b03a0a5f638b3199101": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "704515b387834af4b758afc7850391bc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_3aa2e8ca115e41689ddf7879824c3b3c",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_c4629f7520064104bcb5d87fbfe6a570"
+      }
+     },
+     "7046480b99124eefb75b71c9b00d3586": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "70597e1d758240ba97e5369dbeb20315": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_969c875df2434813af070f3484ad0434",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_7c17efc38b77421e9a8206284dedb698",
+       "value": 5.05
+      }
+     },
+     "7074746fecbd4bf1823836465720058f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_3ff533efb91f4b21813456745a3b8ea7",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_85f199a4eeb94aa88f5289a2ea51b136"
+      }
+     },
+     "7080477bc8544d86a9fd2f0608882fdb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d2bf15717d4a420c866af2ccdc160291",
+       "style": "IPY_MODEL_5d6c427aa32544058966dcf374f4f0f5",
+       "value": "TZPG (mm):"
+      }
+     },
+     "709145b12c43460e8ed571e86c8fb012": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "70a7b447b4f543389c476c55a65a2d9d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "70b33b7eb8aa43158457b664ba408091": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "70f0e4683b464fcf8678199e4ee1792f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "712adebc44234517aff4f723ce86ea09": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7132f5aa5f434635aac4111b484c19f3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_1eee8ea54ee14d4cbfc02679e2848bcf",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_ef613fbf0efa40eda267aa3cf637595d"
+      }
+     },
+     "714944909cb34d35b02fc8c43b325653": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_0ff43cc8066745b1a191e3d4dd881889",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_a5a11a1d148941cb8b98d38ba611533b",
+       "value": 880
+      }
+     },
+     "716ab0770c2548febb6c4ae4299085db": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d5dfc963b77b4258bcba769a7c582437",
+        "IPY_MODEL_51f1219c2ed848bab74be6c98ff85d1f",
+        "IPY_MODEL_9b07b80b1ad341dd88a23935c6d28e7b",
+        "IPY_MODEL_0b65a223b3d2475caddfa474e73e2425"
+       ],
+       "layout": "IPY_MODEL_4f9a2c86e94b4620a7a920090374d50a"
+      }
+     },
+     "71eedba94d86439ea74e125f3d2f8ed9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "71f4ea80ea6546b4bf3b364fddcbcd50": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_0960f0c4478f4b7b855cb07a7d81b150",
+        "IPY_MODEL_1c0f75e42a2745259ab7c0d1bf20bd84",
+        "IPY_MODEL_2b10981afb224d56ae2d95eac5cb5625"
+       ],
+       "layout": "IPY_MODEL_32d9d51c5e784f3b8bc36772334d0fc9"
+      }
+     },
+     "72055e782ec7408a80f709c3dd1e0bb5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_843ef36d376944369098b2cc42c9b943",
+       "style": "IPY_MODEL_42c281a7b4d84390bda07f2ace5735b4",
+       "value": "Grating Pitch:559 nm"
+      }
+     },
+     "722a7094f32c411fa3635a42c5fbbfe4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "72394ffe803c4463a33406eaa7da7530": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7272c1580d824a5b9837d931b10f4557": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_1938be34506e4213ad9380f1409e0a8e",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_8f3d9a7e5e344f508d0cf8e9149c7f52"
+      }
+     },
+     "727d014286f44784abc387b38498abd3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_23bd7995affa4a2db31f61874a136d8f",
+        "IPY_MODEL_aaa621c72ed44c8d80259c56169f7143",
+        "IPY_MODEL_cbc52cb11dd146a882103a93b90dcbe4",
+        "IPY_MODEL_c90a0eccb4b14aafb7e1b99aa3ff603d",
+        "IPY_MODEL_e6430fcb123d484aa2ce76c6759d1910"
+       ],
+       "layout": "IPY_MODEL_ddcf1f8646584742bba76ff4104132b8"
+      }
+     },
+     "72902245503945a29a25782307bd450c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7dd25aaec7e3497d862473270620c3f6",
+        "IPY_MODEL_46cb97af1e19442db2ebf21b0ec074cb",
+        "IPY_MODEL_4e53586ff3ac4b6e83852e1d4d437ee6",
+        "IPY_MODEL_3947f9ca665e4b5a9b3f3b5a91d3b2e1",
+        "IPY_MODEL_c361dfcc09ea420f8392247c1eb4b758"
+       ],
+       "layout": "IPY_MODEL_e681905bd366444e81fe76a65cfeb16d"
+      }
+     },
+     "72a7326a72d54dfd93b33f81f7d44cdd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_307d3704c1cf476f917c889cd9b8957f",
+        "IPY_MODEL_3f31c7a1b23e4b64bdc7fda289cfe352"
+       ],
+       "layout": "IPY_MODEL_1fc3404bac854d3e99938246b56e462a"
+      }
+     },
+     "72bb9fb41d394f47b1e68aedb14a0955": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "72c804a982ac4f21befb6bedb5671ef0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_53444a4da488436786c0cb03405c668d",
+        "IPY_MODEL_fb5dda5654534c08bcea2c2ad1765f6e",
+        "IPY_MODEL_3ad2e92a26f2428098be513d368dfb1d"
+       ],
+       "layout": "IPY_MODEL_0096d7599914460582582e46eef49cb5"
+      }
+     },
+     "72d2ebedb8a64e9da20ce78b24abb864": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_1fec5050a7f7490c9fc65f99fd9f7d10"
+       ],
+       "layout": "IPY_MODEL_7feb0397689e44b48468b965194a7343"
+      }
+     },
+     "72dfcce9ba9549668fcba708670144e1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "72f33fb9e2d14ce2bc4b307ba33ab8b6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "73040998bf0e4117980b8b4eb9276934": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_8ac37be2bed34aff8af4e0a4e738e5a9",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_a4528118f39d44db81f6c69d39b62755",
+       "value": 3.1
+      }
+     },
+     "7310590e3163460e8c9b826ad334f425": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "732f54aeda5443fbb055318ffb3da07f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7336e51de8234a49b67d0f98762241fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "734427a2e9244830a3ef7cde6d424b8c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "735e61c34a864ccd8202c24ec6adc94b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_bedf3064b024405b8eaec352834e3d1b",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_60e435025261424a8e39316c6cd3d251"
+      }
+     },
+     "7437f469ccbf432987c1da395c4f79f9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_21ed570baaf9469eb6a7ece304c7cbdc",
+       "style": "IPY_MODEL_f9a7a061d94547ce8ef0cd6d211950a5",
+       "value": "Grating Pitch:379 nm"
+      }
+     },
+     "748a731d222c43b4bd1097fcffa49664": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_8561c6f7c90b4d6e9a4ee92fb7237936",
+       "style": "IPY_MODEL_c52c884126fb4a8fb7f35672acb64e72",
+       "value": "Energy range (eV):"
+      }
+     },
+     "74bd64998aea40f6ac4f06805fbe8749": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_3742783172ff4b08b6fa9d9dbffdb519",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_7d248964315f4b80a0983f829feb0127",
+       "value": 0.55
+      }
+     },
+     "74fe97ae0c6f4acd86be36bd24c81280": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_7678d47e7a5a4358bc14915fef0a66e3",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_a006bcdd055c4483b342fa6f29ea3c2c",
+       "value": 20
+      }
+     },
+     "754713d8944041c89bb959de74402853": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_c597015364b64a4b975ac87f745d01e3",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_07123dc1b05b45c386fe9a74b54f63c6",
+       "value": 1
+      }
+     },
+     "755f930d236e4ad0b473df895f43a402": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7579bb047f234aa4a8760bc52e4072b0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_8c4d1a9c95d4440b88bf90d1d9fede03",
+        "IPY_MODEL_c211d58e7849455fadfc734888548311",
+        "IPY_MODEL_ae0dbdfa56e941b1828316ce3bed0be4"
+       ],
+       "layout": "IPY_MODEL_1a93985548bf4d2baea2ecdebd525e69"
+      }
+     },
+     "757cc7c996cf442f93ab75d1921c5423": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "7583875d8a88440db51e54fd14bbd0b8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "75a65602d9ea4705a6499da28d426c27": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_bccae2dd19344ffb98fe1ef393c4345c",
+        "IPY_MODEL_4b0caa06a556497eb19e4eeb458cdfd4",
+        "IPY_MODEL_0ec271094a4240ccaf03687184d84e59",
+        "IPY_MODEL_a942e16106994722ae5dfdd199aa5f32"
+       ],
+       "layout": "IPY_MODEL_abca03721ef542dca49d7c85f17b16d7"
+      }
+     },
+     "75ac3f77a29648589f22787be5bf20f5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "75d4e7cc15a9495f8a0a641e09e89247": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "75e6d9db264e40fd9634719932be68e8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "763177a971da4c968a442b2c0e92c5e0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "76544cfe38ed43caa96e5407726f950d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7678d47e7a5a4358bc14915fef0a66e3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7681a02d1f1e49d5bd65d33941f4e735": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_6c21e1e3aa444edc935e548d6fb85333",
+        "IPY_MODEL_7e60418aa00346acac2df7245cc5869f",
+        "IPY_MODEL_1eadb5935b524718a62961ed277410fb",
+        "IPY_MODEL_150a2798f9c94c859ca2da96d4857aeb",
+        "IPY_MODEL_5c57a5bf573540558a3515082883fb2f",
+        "IPY_MODEL_618eb49f877e4c68a5413aff3248de38"
+       ],
+       "layout": "IPY_MODEL_f0a7ba2d57fc485ea5571f31add7bb2a"
+      }
+     },
+     "76b14567f8154381bc1171a7cdfd07e3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "76c4f326b9b04197ac7211df240bf03e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "76f71d525eda4c31b774649dbfc822e9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "76f88fc8f24144f59deb4646567abdef": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7718c58cf55b4df3a9457744f4cd1f73": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "773df74aa2414bc083b6c92eb71de928": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "778bfc527d294600bcdd34b857591d0c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "778dd955b00a41a2a17b23d18076a6e1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7796f74844834a0f98827e427fc26ad7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "779dd5cdc3c04a268c2eb420b414088e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "77a074043f0740ec98c113178ab1d0c5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "77a26a4a672d4a10ad72394fdce2f459": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "77ea0026e3244e18ad9c587abcb1969b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_3fb12cd3df2f425b9b58744bdb22a919",
+       "style": "IPY_MODEL_4222d70735054cec829302c617a91764",
+       "value": "Low energy"
+      }
+     },
+     "7825e502abd64540a26e4ecbbcc1ee83": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7869a5302de14f2e9d3837bc144b865b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_e42389d1f14e4276ab0e8f64ac5c6e5d"
+       ],
+       "layout": "IPY_MODEL_1eea5f3c74124769a9cbf5bae1558c76"
+      }
+     },
+     "788306dcf7d4455985e34c9a93eba1c3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_573cfa3a9fed46a1a7b26765c58ab7ed",
+        "IPY_MODEL_d5d4aa350e9d4b639ee48b6659f85193"
+       ],
+       "layout": "IPY_MODEL_a75abb0454014fbfb53bee9b54f2b6be"
+      }
+     },
+     "788f3c927f6d4695b4c9c6d3fa2ded18": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_30c8b2d416dc49ce9c79ded2bc4706ed",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_5f3104fa1e31475498d7e2f2fb104cfb",
+       "value": 1
+      }
+     },
+     "78bb5953c1524cb8b3f324b2442272bc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_f96a518d6b054ce1a21baffdf4f3efb5",
+        "IPY_MODEL_ee3f3e1ac7cb4336abc378dd6cb0889b"
+       ],
+       "layout": "IPY_MODEL_84bc8b5868864887926a7116237dd783"
+      }
+     },
+     "791f64a9283344a2acde5afe4e5575a7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "794ac6ca90b84f88a5323df0e9d62873": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_1dafe9d4c86f44d68fb9eebb64a3fb7c",
+        "IPY_MODEL_b9636513b94d4146a2a969d3f7212635"
+       ],
+       "layout": "IPY_MODEL_a0edc6a2f4ea4df59180cfd75e633517"
+      }
+     },
+     "7953fee2942646f1bf582c8f7c6a7ca9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "79699c6cd12e44bcbfd2be592e02b315": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "79a689551db24069ae992286b233a64b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "79a7314be9754a21897a86cfdcb6d8e3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "79b08b22489a4c22974d4a355325f545": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_bf6ceb35d67345479623c4a6944f43b9",
+        "IPY_MODEL_7cff3404e5b44824aabfb6167f3bfa29",
+        "IPY_MODEL_70597e1d758240ba97e5369dbeb20315",
+        "IPY_MODEL_fc6464a0a1d147c9a4ee9417393bf993"
+       ],
+       "layout": "IPY_MODEL_1becfd4428e64e28a73b3e407bee4174"
+      }
+     },
+     "79b2c3ad60e049e3b9a13cea46b533de": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "79c760cd3e9e45419df6a7864a44377b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_0e1e3cce30f64ba0a3f862c5be38aae8",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_a588e85d525748f1abb7d089d59025b5"
+      }
+     },
+     "79cc87efa60049c18e991eb335d22cc8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7a2a3e84e0894ec0bae9f774cc983823": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7a4dad0aaf31452caa996e08690955ed": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7a60daf28c814d18b10571728d358d7b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7a773dcb42b3467ab5352e0f1510b418": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7a8160b4085a4202a11652381b6f4e47": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7a894e7cad3a4201b499382e92848f03": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7a9cbb6ab37147c18cfdf6a49bf1b5ce": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7aad60a3ebf14412815618974191397a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9083fef566b649cf911380990cc6999f",
+        "IPY_MODEL_ec707a66803e41b99934c9d1017f0a04",
+        "IPY_MODEL_74fe97ae0c6f4acd86be36bd24c81280",
+        "IPY_MODEL_735e61c34a864ccd8202c24ec6adc94b"
+       ],
+       "layout": "IPY_MODEL_1fb0f315e7f44b759a0089f6810490a1"
+      }
+     },
+     "7afcd4e0cfdc45aaafc97a923ef8af2e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7b0069dfda3a43699f393c4cd94f5535": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7b345aa771484aa48ea2522e1c91028d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "7b71de25686240cd878c03176395ce28": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_507b47758a5243f3936dcb6de969da6f",
+        "IPY_MODEL_1dcb4d25c85349578062bb6f792edb6b",
+        "IPY_MODEL_6faddc7996114b76839e5c9079bbcfc7"
+       ],
+       "layout": "IPY_MODEL_a95589a386964a429a240d3670a88a4d"
+      }
+     },
+     "7b802f9157d34c07a9c2685e4b25932c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7ba921693bc3419b963af1fa5c7d108a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "7be2150ad247489c8a2c3a50e05d6028": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_9c42a86936ca4f6c99578ff2bc015c97",
+       "style": "IPY_MODEL_6740e199088b4323b5694df0b1ec5652",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "7c136cb9c6674cd885da943a5e5cb4e8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_ab2e35861f0547cfbee273ed14b1afc2",
+       "style": "IPY_MODEL_260522d3656c48cc8d0c4c29ba2f68d8",
+       "value": "Membrane (mm), "
+      }
+     },
+     "7c16b642345e459fbdc12d6fb1328b60": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_65dde25404224440bfa734aa3dd8ac0f",
+       "style": "IPY_MODEL_5ee90293502c4dfe884f87bcfdf67f9e",
+       "value": "Membrane (mm), "
+      }
+     },
+     "7c17efc38b77421e9a8206284dedb698": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "7c185c1c73344affafc4c8256218a14d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7c819b0aaf224560a6e8892eae726610": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7cc99a4a5f9247be8a84e015bbc49099": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7cf45bf486b7423caf38cbc5b35dc512": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "7cff3404e5b44824aabfb6167f3bfa29": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_b9af07ea39c5460fa36f9520f3e65584",
+       "max": 2000,
+       "style": "IPY_MODEL_cce496be81e14b608c9e36fab047c6a0",
+       "value": 200
+      }
+     },
+     "7d248964315f4b80a0983f829feb0127": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "7d7753629e154f0fa7c020ff5938aafd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_22b14cbed6f84cacaa919734c8fde6ce",
+       "style": "IPY_MODEL_eb881a6853a5437d9e7cc0181d929383",
+       "value": "TZPG (mm):"
+      }
+     },
+     "7dba8ec501e74495bcc907a8c85f067f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7dd25aaec7e3497d862473270620c3f6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 0,
+       "layout": "IPY_MODEL_2e5135fd8692452bace2ab9df423e72e",
+       "style": "IPY_MODEL_80fa50dcf5ca44c7abc1fe01ef16fa07"
+      }
+     },
+     "7dd280175ee5493aa069ad66e666692d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7df1deb89e1a42698f7224fd41930318": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_268692882b4d445397d480eb9714c615",
+       "style": "IPY_MODEL_8cc6723ccf464f36b96f8f16a92037b6",
+       "value": "TZPG (mm):"
+      }
+     },
+     "7e111e03204648929b4e56fa414ca088": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7e18cdaf356944048eda3c4d470d95e7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7e1bacf8e76d46dc91fd323cbc735803": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7e28faf7094f4ab49617ec548a6687a2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7e396e434908467ba36cd5918684322f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_302f06c0b7514f36b1a0770a147c4b14",
+        "IPY_MODEL_8922008792dc4f92b4ebc06d02d1b06e",
+        "IPY_MODEL_0e2829a4062b4649b6e4e0300bd4b194",
+        "IPY_MODEL_eab4eae027ca409e9182b1a10c9ed9cc",
+        "IPY_MODEL_988b704d87a5435dbb5c58fe57bfd3d7"
+       ],
+       "layout": "IPY_MODEL_59a00cdd56e54b338987b4d555f4a544"
+      }
+     },
+     "7e398ba0e1bc4366bbef39915d4e30fc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_300209feb167409681e15dcc70a172b1",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_487c675d9c6245ea8b11bcfb86de312d"
+      }
+     },
+     "7e60418aa00346acac2df7245cc5869f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_3a9dd5337eaa4a97884f3c638b324820"
+       ],
+       "layout": "IPY_MODEL_8279aebab74f4f4d9196f55837e4b6d7"
+      }
+     },
+     "7ed9c434f95f424b9a18cc7b67b2562b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_68da1449af0f44ba92c1c30db1beb664",
+       "style": "IPY_MODEL_1e01a24116ce45739d8088f43598cea7",
+       "value": "Low energy"
+      }
+     },
+     "7f20d0e43d5b4420ab755c6046499a41": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7f2f055efeae4755bf1de6855f722017": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_cf77cc8f06ae4d88b08b79fc5f95d198",
+       "style": "IPY_MODEL_6606cd77d25743e1ac50cacdd54c5216",
+       "value": "Membrane (mm), "
+      }
+     },
+     "7f4e761864ac49f8b06b86d84be346b2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_910db8f08ace4751a750dd7d6f24f629"
+       ],
+       "layout": "IPY_MODEL_b96cf4cf5170445e91e1e0f161d0d845"
+      }
+     },
+     "7f55bb71c01f4b6cb3cbee687b98ce46": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_3db8d492b05b478cb28cd8936fb7f32f",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_f5b25c24f22e46a99f8cccdc3e948c80",
+       "value": 1
+      }
+     },
+     "7f5bed80c5d34cc6b72bcca106958999": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "7f9064ee75c74146a53456b8b34f41be": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "7f9122896c0a4c9caa583d6e835ac9e5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_53beaddd73414cbe99519f2dedb47393",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_47a5b738af254fbba63e82976c0cedcf",
+       "value": 785
+      }
+     },
+     "7fd01ce43d7e40898e9bea70eb32cb82": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_4d2b98c4b57f4b1587749da05f5f98a8",
+        "IPY_MODEL_fbf8cae533e44a40927d28f7974ccd92",
+        "IPY_MODEL_06f39f0e0fe14a0786d78bd6bdf29281",
+        "IPY_MODEL_ce33b422b92c4866b25c735e4b53b372",
+        "IPY_MODEL_8fb5a368f513498fb618ea5aeeb6e7cf"
+       ],
+       "layout": "IPY_MODEL_c41f101a12634c57ab50481613303c14"
+      }
+     },
+     "7feb0397689e44b48468b965194a7343": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "801794dea4d94ad09add87be03205a57": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_716ab0770c2548febb6c4ae4299085db"
+       ],
+       "layout": "IPY_MODEL_b4c789fe1e4e423d97d822aaaf599f5c"
+      }
+     },
+     "8081d2f2fc9941b8ac3cadb41ac8a596": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "80a6f82641c84a9bb9bc32bcd3d72163": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "80b8e7824b6b4d0080d6b7a71711c924": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "80d31b0ede6d41c6bb770c2bc92538a6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "80fa50dcf5ca44c7abc1fe01ef16fa07": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "811d8cc362b24a9385657063afb3b9ff": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_881027767c884d09ab8737fdab4c235a",
+       "style": "IPY_MODEL_05cffa1b8f304dd9bcc946b221a9fd42",
+       "value": "Outer Zone Plate width dr:196 nm"
+      }
+     },
+     "815d4e5c84b04de3861c687d09de9533": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "823c5523b0ff42c18d536a4243b0e7ec": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_2990c7b18ecc49fd8aa6a2ac09d42a0f",
+       "style": "IPY_MODEL_cdfea446c01241d3af41901cc27fde12",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>735.57</td>\n      <td>751.10</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>735.57</td>\n      <td>751.10</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>735.57</td>\n      <td>751.10</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>177.11</td>\n      <td>160.28</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>177.11</td>\n      <td>160.28</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>177.11</td>\n      <td>160.28</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "8247e2dd643441cab2297b33e2088f19": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8279aebab74f4f4d9196f55837e4b6d7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "82bf4f2321844415a65e52be3191fa36": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "82fda8bbfffb4ba189de426383091b8f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "83168b94a7a443d9b13a0ad1dbff9e1f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "832ac08b0af042abb56f26f430180cb9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8368fe357a8843cf90d12cb4ff298e6f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "83fa4f56b4294e81ad54f4c561d995cd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "83fde167f8414b5297f8b356466086c2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "840ee67d35854ce292676ef5724e18ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_a6178c42bc1e49938c0ff4b2b4a851b6",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_5456552b22a844f7b316707ec112cb1f",
+       "value": 0.8
+      }
+     },
+     "843ef36d376944369098b2cc42c9b943": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "844d33a472f04be5b1656904196b26f7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "844e3798130f4cb4a78afeca233dfa2b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "846b9d275a31464a8718115ce91711df": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "846d027ddbc7418caf69b5e3799c036c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_4344039d669e4078985fcb7faa63b942"
+       ],
+       "layout": "IPY_MODEL_3b0983e96aa8459eb3511cce82c9566f"
+      }
+     },
+     "847587a5101345a1965ae4eea8a13eee": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "84899a9469e249e6b3bf5619ae5960db": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_f6f98ee9aa7046968618fc48ab80ce88",
+       "style": "IPY_MODEL_eb78087670cc4f7fbc559cc6b9cd6249",
+       "value": "TZPG (mm):"
+      }
+     },
+     "84a85a98b2a14e5fae0cab05de7c85b4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_79a7314be9754a21897a86cfdcb6d8e3",
+       "style": "IPY_MODEL_1ec48db6b504488ca15d61be01bb5299",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "84bc8b5868864887926a7116237dd783": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8527a3ea3c1b456fb627b127e58b8113": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_c1670012f6504fcc85ecddb7f406ad70",
+       "style": "IPY_MODEL_14f2778433e844a5b2b5d1b21b42019b",
+       "value": "Grating Pitch:432 nm"
+      }
+     },
+     "85297aa12c1748b0b0797adb1d46be26": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_3ea0036661f446f3a6b1c7ccb98b0375",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_8f1d163f4d004782ab8253a4e7c2e0a8",
+       "value": 0.8
+      }
+     },
+     "8561c6f7c90b4d6e9a4ee92fb7237936": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "857a0f00a75b4fc285b7f8b2789ba36e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "85b54555539442d1b504afcee919ab41": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_e8b41cd74e0143818cf8bad21a6f1c04",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_76b14567f8154381bc1171a7cdfd07e3",
+       "value": 5.74
+      }
+     },
+     "85bac71d9e1541ab9cf4d5bfe1af0e3e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "85d5dae7ecf9429fbc4c19b7448f7dae": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_ef62a3fee1f04835acc22025b15ba38a",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_d0a3009840c049dfb7d80e6a7db2f895",
+       "value": 2000
+      }
+     },
+     "85dfb6baeda141849c7f7a44e1abea2f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "85eff841ccf94ae3a4d347e23514be43": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "85f199a4eeb94aa88f5289a2ea51b136": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "85f82b02058f401ebe1747974358554f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "861ee2e9f1cb497982405db34d92a6a2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "868a3c4aa7cb43cd8fcaeb4f8de45f7d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "87889a997fe14bce93a83ab5579df700": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "87908949a5a949bea75c37bf5664f288": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "879931ee8783413ea0d682024807ffeb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "881027767c884d09ab8737fdab4c235a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "88307488b5114a239347c3682eca9d6f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_46b7e70122084d1c98450552ad637e55",
+       "style": "IPY_MODEL_1a6d5837767e480b893bbeb1e5f12ac6",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>740.48</td>\n      <td>754.82</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>740.48</td>\n      <td>754.82</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>740.48</td>\n      <td>754.82</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>84.13</td>\n      <td>68.58</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>84.13</td>\n      <td>68.58</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>84.13</td>\n      <td>68.58</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "8870dfc654174bc3b6a98a1f273cb7c7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "88a11a52304c450499f004f8d3638a49": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "88b4b39b821a47bda28df65bc88b2853": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_8527a3ea3c1b456fb627b127e58b8113",
+        "IPY_MODEL_386c360722f44e62b76b12ed0662530b"
+       ],
+       "layout": "IPY_MODEL_72f33fb9e2d14ce2bc4b307ba33ab8b6"
+      }
+     },
+     "88ca49e7118c4927ac250721e7900c98": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8902e27e9cae4c10bf841f1ce72a55e4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "89089eae9fd04b0e8cf5521f7c3696cc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_bdfaae25e14c41b5905673d4c6a1662b",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_cf9842103f624cbab6115eda5f9a2c0c",
+       "value": 5.74
+      }
+     },
+     "8922008792dc4f92b4ebc06d02d1b06e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7f9122896c0a4c9caa583d6e835ac9e5",
+        "IPY_MODEL_a2c53569fe914dfaa8a9e2adbf65ae2f",
+        "IPY_MODEL_9ce8d65d222c4d8989738eff526c9e31"
+       ],
+       "layout": "IPY_MODEL_d81ce84dd3474572b2d44c7349b62772"
+      }
+     },
+     "8943f1775fba4ac4815d59baeabb728c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_3d925617d0cf4f389c7c69e6b79b37a6"
+       ],
+       "layout": "IPY_MODEL_561408052c774c3d8e0f24e30223f4db"
+      }
+     },
+     "894828cba7b2440b9fbf6e814bee02ab": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_118cc8b53ea0405b8d4737280a41469e",
+        "IPY_MODEL_e6d22d1e386d4b40a1cd23f52fc8d74f",
+        "IPY_MODEL_4a3b75ee430c4c54b59b3dd4939a6e4c"
+       ],
+       "layout": "IPY_MODEL_847587a5101345a1965ae4eea8a13eee"
+      }
+     },
+     "896eec32714c48089a43babb407216f3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8975e2cfa70c41b6a4d90c150d9f102f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "89768eb3e20342aca6bcda60aed46670": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_f8e24dbbab444b8393c56854d57b2fcd",
+       "style": "IPY_MODEL_e473735c87b246349549daeb20a0fffb",
+       "value": "Detector (m), "
+      }
+     },
+     "8999985f4add4e2ebcd5df48018a045a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "89b9e2c879434f828fc10cb95c1fa977": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "89e39ae665d74aa7a571acf761cae5fe": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8a13873288f34e6a863e91a974480581": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "8a4a04e7edcf4dc19d35e977c64101c7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8a508a2a61ee46d7b98a89ea0ba21c4e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8aabd04b11934f60b8699803b8885c78": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8ac37be2bed34aff8af4e0a4e738e5a9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8b06d698018e4a469bb214493b9739bd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8b1a547acc2146e9ab8813a8400f416b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8b7e7f5b27944879a8d78aebbe89cd13": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_9f7981dbebeb44c89e4a3b45a1ff6ec0",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_8a4a04e7edcf4dc19d35e977c64101c7",
+       "value": 54.74
+      }
+     },
+     "8c383b85ee81417ba036bdcdbb57b4d3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8c4d1a9c95d4440b88bf90d1d9fede03": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_3165ada44f2442bbb2147dd87d359cd6",
+       "style": "IPY_MODEL_ee74bb2175b9495ba5f35c48e31fa1ed",
+       "value": "Membrane (mm), "
+      }
+     },
+     "8c79193a2079419586067f13a0b118b8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d37adad632f04b20893b5375c19fe480",
+       "style": "IPY_MODEL_e58d9d8e0961484abb57bea4aa9dd008",
+       "value": "Detector (m), "
+      }
+     },
+     "8c9e77641f334f59a43759f33091234b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "8cb2db328b2f4bb19462e83a645e87fd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8cbc34e506cb4beca035219c44d168bb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8cc6723ccf464f36b96f8f16a92037b6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "8cd4c6089b73456193ade379d87a103b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_6e8a2020b9a64fbd8893d74a32b83e08",
+        "IPY_MODEL_c0a66750d27b40e68603235cf9c17782",
+        "IPY_MODEL_31f7823a82464c5ab7bff89cf96891a1",
+        "IPY_MODEL_bbb24af1a8c84378b2938a5b1b0097cc"
+       ],
+       "layout": "IPY_MODEL_152c9f24bd424e0f9963c69d347a7287"
+      }
+     },
+     "8ce7dbfb03054337b7c6552292060295": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_63ddd9d071cc499bbe28d286ca01d093",
+       "style": "IPY_MODEL_98c1f5af3d124ef78ba08a4876c65e1d",
+       "value": "TZPG (mm):"
+      }
+     },
+     "8cf1295b157a44a99a42ebf6d4553a15": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8d12298968044c48b907fcfedfd5a102": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "8d22a9f571d948d8a2b7aac01e742ea6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8d65ea9cb16b4e97ab91ed739a8521d5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_a3a6bcb43d4545fda7c3e4a4f7dbb9d8",
+       "style": "IPY_MODEL_015a73ce1dfe4731b35affa13383b8bc",
+       "value": "High energy"
+      }
+     },
+     "8d66008961274e2fbe0099e01f8be153": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8d6fb60768534b208c359a93ef93d9f2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "8dafc72f1afa474fa205a5efde5d64c3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8dbabab5adc74d10867f65876d3cd02e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d3ab8c9d9bdd4d8fa2f79c54c2a41f22",
+        "IPY_MODEL_261d856d744c4497a6298e6881a832be",
+        "IPY_MODEL_2311522565884c11bf03f7f8fb15f2ec"
+       ],
+       "layout": "IPY_MODEL_cf988e41f9af49acb18cd861dd9ba0fc"
+      }
+     },
+     "8e0a36d43f9c45bfb7faaa7bc1497b1e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_07795c0712a342f4a9ce1b55474acf07",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_450480f8b3044caea2f16f401857b43b",
+       "value": 880
+      }
+     },
+     "8e0cbd2df9fc4a4fab1ee17f3e71158e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_42fe584421464cb6a0fa3d74c64d415e",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_5650b5be034f4382a13b584c80080a51",
+       "value": 0.5
+      }
+     },
+     "8e7669b84cd940d4a84df278e4b168e0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_617b92ab7766469fa9363b597dda5f46",
+        "IPY_MODEL_18f369c30b8f4487a714a4e135cae66d",
+        "IPY_MODEL_2f79ec0cfdfe434d96029df93fbe4cb2",
+        "IPY_MODEL_dbaae4f96acc4c09b31bb05c61605ac0",
+        "IPY_MODEL_05d0d9d3a289460ca8800b32198fcfd1"
+       ],
+       "layout": "IPY_MODEL_40a0c92ee5d34e8fba02f471a834fd60"
+      }
+     },
+     "8eb26b89f2aa44be9dc0a3a780ead1c8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_95827c043a2b4ca496af3b6223559b39",
+        "IPY_MODEL_e4faa1e047ba478caa1b0bbcd5a7aab9",
+        "IPY_MODEL_f1329b2828074aed81530ab8cd70b8c3"
+       ],
+       "layout": "IPY_MODEL_90fe662eabd04c289928b0993ac5f284"
+      }
+     },
+     "8f1d163f4d004782ab8253a4e7c2e0a8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8f3c26c4ef3d477bb326310b69c3ba00": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "8f3d9a7e5e344f508d0cf8e9149c7f52": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8f4f4bc10dd24841b701bef43e969ab5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8fa7bb0cefa34066bc6d9a118a7ada5a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "8fac06980ff4484ca023e24a3a5602fc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "8fb236641ab84f578aea1d701711dd2d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_46ee5f4325fc41bc97f2a9f7672b3cc3",
+       "style": "IPY_MODEL_d3194e53d3b64108b9357e0dcec50ec0",
+       "value": "Grating Pitch:379 nm"
+      }
+     },
+     "8fb5a368f513498fb618ea5aeeb6e7cf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_34dc2e5ab40f4e0e86d59fde261af831",
+        "IPY_MODEL_ed35289fb57a4efaba023c9d7b980952"
+       ],
+       "layout": "IPY_MODEL_dbe9bae4a4204cf49d016baf0f2b24e3"
+      }
+     },
+     "901d6a2618da4216adc3a68a7ac21ed2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "905bc610ba044696aae64f4ebb41a148": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "907466a8717c4161bb3a032cd7a11a09": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9083fef566b649cf911380990cc6999f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_cf73181277984419a8c60b63a2837003",
+       "style": "IPY_MODEL_8d12298968044c48b907fcfedfd5a102",
+       "value": "Detector (m), "
+      }
+     },
+     "908e149e2c8a4c7db267c27341d905cf": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "90a0e0800d4744379d69635a4e12ab9a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "90aa766d53cc4eadbb69bf63659cf619": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "90cde5d6130f41a9b3254ed2bc866714": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "90fe662eabd04c289928b0993ac5f284": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "90feb4368dc543658e9b7f59d5ac64df": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "910db8f08ace4751a750dd7d6f24f629": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2b49db57b3d24ea3a8e68a22970112ca"
+       ],
+       "layout": "IPY_MODEL_5f38f060e7074c96a62e6b6d7b97fd66"
+      }
+     },
+     "9120f744ae4b4f588ffcdc8e73f9cff2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_6853cce1a96342ef839f0e4878622b07",
+       "style": "IPY_MODEL_1638538aa8b74f1b8128310a5372dc60",
+       "value": "Membrane (mm), "
+      }
+     },
+     "914c8a1570f54bb8b2eb069a28009b40": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "917c198f84d74753bfa3c27bae2ace44": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9197127259f74ac9885344d2c62158af": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_14c564049d5045dab27cb19b3d2f37ae"
+       ],
+       "layout": "IPY_MODEL_062d1e839ff8471ba1a9cf7cc1c655a9"
+      }
+     },
+     "91cda04e516d4033918d49d16c1e96ff": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "92698ad212164a5ea9a9adfbed290bae": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "926b4b33718d45ac8ab937e7792f3907": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9277a071beb04b27b2508731f0bd7d0e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "928026ca4e9a4e048f9ac2c18385c012": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "928a0614ef754c879c10fa93763bb720": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_b05c89cd877e4c16a1f4974384cfcc12",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_016a2d6ec61547da94dc740766349e9d",
+       "value": 0.8
+      }
+     },
+     "92adb9fb6f1d4bd697e422ae7788fd55": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "92b5f74ed1ef4252834272a38b6cca2e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "92bc3043537949a3ad3c1732ba266e23": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_38900705626a4bba867f93eed3d5467c",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_421e4b2d0c5547cf8e008525d48ad765",
+       "value": 381
+      }
+     },
+     "9314832a77484c5f817035c1f6a0b09d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "933621d1b8704bf9b5a6dc12931934a0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "935dda90de3d46b5b957de733877bc70": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "938902fac9bf45dd876ffc222c56b145": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "93a50a3d9b204a4eb5e863d0e0b58529": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "93f0932b0b72406eb9647a852882b949": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "941806f87be64600a154177f9707b168": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "942b5015097a42a38334dc0715155eba": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_94f9aac8070648c4b7f6f287e0b0b506",
+       "max": 2000,
+       "style": "IPY_MODEL_cb67a8c80df14c438e27e1c5bf4360a8",
+       "value": 100
+      }
+     },
+     "942d232a00b5490aa64a1d82a06f39d4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_bef5dd5148184b80873db37119306a32",
+       "style": "IPY_MODEL_adb306173a9949d19bdc94a654335263",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>96.54</td>\n      <td>76.88</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "9434cd273da64991987f8cd5dfc7c30a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "943c6f3e8c1c4ce285775f9a7acee5b9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "945b5689d4474c59b3384eee98b31439": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "945cee30ed8e4859bed26023b7b0ef60": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "94d267ce78bb4518a37d86f81a9c4903": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_e4d5ec50a67547de8a6a57e0d0a796d2",
+       "style": "IPY_MODEL_04631676023e4637b7fbd9959f7537bb",
+       "value": "Grating Pitch:379 nm"
+      }
+     },
+     "94e936b2d1c34102a357c59b4e054822": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_78bb5953c1524cb8b3f324b2442272bc"
+       ],
+       "layout": "IPY_MODEL_b165d89653194a3192d1ed39859108df"
+      }
+     },
+     "94f9aac8070648c4b7f6f287e0b0b506": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "95073e8f40654b87a3b57eeb44acf7cc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_bf91ccf62ff448a5a717ab411c403b2e",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_6728aac8449545d3be02c35d1caf2a9b",
+       "value": 1
+      }
+     },
+     "9509f20093cd4a858d90059864c60070": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "954adb7652ec43338350ad57efb74d48": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "955d886573e644e7859071513f256b40": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_7dba8ec501e74495bcc907a8c85f067f",
+       "style": "IPY_MODEL_edd29724a3794a0d887eadd4c2885bbc",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>13.99</td>\n      <td>28.62</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>13.99</td>\n      <td>28.62</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>13.99</td>\n      <td>28.62</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "95827c043a2b4ca496af3b6223559b39": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_2db04d002fad4d85ae5992830481a18a",
+       "style": "IPY_MODEL_7018c2a8a0c9417a8b99998a7f3bd140",
+       "value": "Energy range (eV):"
+      }
+     },
+     "96101a048d36415ab269fa2ae414484c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "965a4cf4eaf5468e9044d5484ace9d83": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_bd2f09d9d4d04e65954591862909f28a",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_ec04144c2a38463e924cfad8942f1c1f",
+       "value": 30
+      }
+     },
+     "969c875df2434813af070f3484ad0434": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "96c68bff2a7d413883e7d256175cb40b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "96e4e74befe74b4e92d941726f68071a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "96ed9000ca7e4bddb43d160f24844aef": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_3f3662d7c0c24780be4378e40eedfec0",
+        "IPY_MODEL_e1565be99ec74a97b49bda13606b3e6c"
+       ],
+       "layout": "IPY_MODEL_a364c8a0c5ac4bce8f1b2d5cb21478eb"
+      }
+     },
+     "970938a67fb349a2b86151bd2f9710fc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "97124282efbb4183b9df36749adcce09": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_cd647eb1dbf94d67a7c595181e844e9b",
+       "style": "IPY_MODEL_f6cbf548d16b47faa2683cf7fd138552"
+      }
+     },
+     "9752e911c01a4fe1a963345d0291d055": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_6a9e2f0becb3400aa9c24ff618848146",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_03c57a29f45046b99fbcab6d54da1dc3",
+       "value": 840
+      }
+     },
+     "976879c4cb1d4dd3a7bfdfa8f5bf98b9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9769f36244b94b6589fef9bf5801df7f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_3a827646788b401f987a2fd105fba79d"
+       ],
+       "layout": "IPY_MODEL_2d3aced458614e61ba10159987f7db29"
+      }
+     },
+     "976ae90a658046e58a883e8152327b53": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7c16b642345e459fbdc12d6fb1328b60",
+        "IPY_MODEL_c2537060c01c458494833a5176363404",
+        "IPY_MODEL_9a85f6b5ac5e492b91fb8a8aff8b3ea1"
+       ],
+       "layout": "IPY_MODEL_074d187683904756854e64df7777314e"
+      }
+     },
+     "97b2b15d400c4362915736e5cbc0db58": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "97bdba3b45f94f94aee5a8248fa2e2b7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "98409ddb1623443a91565c30c3ce7ac2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_a25758382255414bb4321c6ec7bc6097",
+        "IPY_MODEL_29d0383c9e9340a09e98eb7a8c727a49",
+        "IPY_MODEL_d8d91e92e2a94df9bbe15d64699b45cc"
+       ],
+       "layout": "IPY_MODEL_9ebe2839ecb348b49f5402238d440c94"
+      }
+     },
+     "986972c65e084add822b3ce913b6d7fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_c3894160023e4722b97eb6f238e075bd",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_a03d543642a54cd2b04eb0ada9f3deff"
+      }
+     },
+     "98823a677eb84d28b5036d297912c587": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "988b704d87a5435dbb5c58fe57bfd3d7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_84899a9469e249e6b3bf5619ae5960db",
+        "IPY_MODEL_840ee67d35854ce292676ef5724e18ed",
+        "IPY_MODEL_85297aa12c1748b0b0797adb1d46be26"
+       ],
+       "layout": "IPY_MODEL_6932c7eb2c3d4235a64207d024374594"
+      }
+     },
+     "98c1f5af3d124ef78ba08a4876c65e1d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "98e0fe56f7b84ca8835d27ee725db818": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9922e7244f2a495e85b3bcff2ad120d2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9930ec49320842fbb3d2ec7655e6019d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_b68f06648d2d4150af3a4f864807fec6",
+        "IPY_MODEL_ab789f7b9d8a49aca434a5248c81bfa6",
+        "IPY_MODEL_32f0c87ae1d9489c931bf79097611887"
+       ],
+       "layout": "IPY_MODEL_2a4414630aa745029cd095cc82f6ace7"
+      }
+     },
+     "99346cbf21fc4fdcbb91f43c16ce5c18": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "9955dbddde9548ad86722d416616709a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "99a48d7399074be6a9daf7e1d74da59e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "99a957e0bf4b4814b3af916c67222b3a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "99aefb6c516a42e384cf8976381723bc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_85bac71d9e1541ab9cf4d5bfe1af0e3e",
+       "style": "IPY_MODEL_09ca06a32274428fa6515b183f848778",
+       "value": "High energy"
+      }
+     },
+     "99b6b53987ec4676a876dc56e8469dd4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "99b8916ecb364806806b01551062faef": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_a0ec9ae62010465496e12379cd6dfc3f",
+       "max": 2000,
+       "style": "IPY_MODEL_83fde167f8414b5297f8b356466086c2",
+       "value": 100
+      }
+     },
+     "99b9c8c9d9294bcea17fbf4262169061": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_dcdabe8a43ce4aed914770989edb66b4",
+       "style": "IPY_MODEL_157a3476f5e3467c85f52328a5d4260f"
+      }
+     },
+     "99babc5f59054f77848cc79140d8b634": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "99c8ca8954654c5e8fa50d0cc9f6724f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "99d3ba1826734520826f56fdfb81773d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "99e5d2184b9849978ecfcad8b3bb547a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9a85f6b5ac5e492b91fb8a8aff8b3ea1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_62e0414b817443c99d417cb5f3558d44",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_dfdbe7a10cea4dc5afc5579d0f346382",
+       "value": 0.8
+      }
+     },
+     "9a988d72335d407e85c49b51c743d8c9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9aa1680472b74465a6e87eb12f1b23eb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "9b07b80b1ad341dd88a23935c6d28e7b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_9ef7afa5888e419b80459574f8158a66",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_26b373c081ce4243a55d605ad1ba472b",
+       "value": 5.05
+      }
+     },
+     "9b1d810c4a8d4e5cb268dd66436e04d2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9b25221096644274ae8da394b45fdafc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_e22117bc643545a4a1303026b436ba64"
+       ],
+       "layout": "IPY_MODEL_196d1b8e34b5429a9272e7b80d1da349"
+      }
+     },
+     "9b53a76ebad341a69eeada86169ca3ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7080477bc8544d86a9fd2f0608882fdb",
+        "IPY_MODEL_928a0614ef754c879c10fa93763bb720",
+        "IPY_MODEL_ae40043acd384004af774aeb1bd62da5"
+       ],
+       "layout": "IPY_MODEL_107872ed45494d16aca4df013610785a"
+      }
+     },
+     "9bac66ae80ee4b6e9d153897e930fbee": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9be77dfc691a4f20b98f90ea43063217": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9bed63f6ce414952ad560401894da85c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "9c42a86936ca4f6c99578ff2bc015c97": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9c4b3781365749dabf296ed0c95c6464": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9c63b8c6825b4db2a2eaefec8802e8a9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9c650ee21c7d4b45932f9894243e5938": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9c79054a6e1b4bd2ac3e075cb0162ce3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_4fdb167de4474792abc7c3c8f87e3210",
+        "IPY_MODEL_4e48b6840cc746438be91ad34810610b",
+        "IPY_MODEL_04130b711e2f4dd598e55fa45483cf0f",
+        "IPY_MODEL_4216cc9ea7e54544a0ef47ed62350ad5"
+       ],
+       "layout": "IPY_MODEL_85eff841ccf94ae3a4d347e23514be43"
+      }
+     },
+     "9c82dec939534fb7914f4b6fcab19ade": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "9c8819587e1746c79b6f74902bc6ebab": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_398782b77df24fedac2db6e899aab973",
+       "style": "IPY_MODEL_7a894e7cad3a4201b499382e92848f03",
+       "value": "Low energy"
+      }
+     },
+     "9c989b0cd1c043e5b071dc5f6ca69c98": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9cb4697533b7404bbb704a0bb171a7dc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2f44a8d0575b428f9cb1b0032e6053c0",
+        "IPY_MODEL_b7b33032c5cd4b1e8cc71788398749b2",
+        "IPY_MODEL_2dcb75f681bb428dbff9be9dafa5ecfa",
+        "IPY_MODEL_7272c1580d824a5b9837d931b10f4557"
+       ],
+       "layout": "IPY_MODEL_a43840f9754f48fdb7b16922969098b7"
+      }
+     },
+     "9cb6ce05bc394512bd8582edf5b990a7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_b16aa00d69574aefa184625abe9e1604",
+       "style": "IPY_MODEL_f6fe8a1dbaf24ebe8d5a0df511ac4544"
+      }
+     },
+     "9cbe2524cb2a439eada7911ec3c8c6f1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9ce359aa5d96409497530cabb885b32f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_e902808a56ca4508b58934d6762b8805"
+       ],
+       "layout": "IPY_MODEL_79cc87efa60049c18e991eb335d22cc8"
+      }
+     },
+     "9ce8d65d222c4d8989738eff526c9e31": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_7e18cdaf356944048eda3c4d470d95e7",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_48aca893471d4e538a93b4f1e8310941",
+       "value": 0.55
+      }
+     },
+     "9cfb13b8609846549ffd0a65faa81032": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9cfb3c7424f942b5b0629eb43c247f66": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9d1802dd9af14b66a6fac8fbc3a6506e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9d35868b0fe94ef09d377ae4e70cc383": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9d62289c9b53493f90bd841bbb547409": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9d702972085b43829708abfeae396380": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_f9ab8eed9a804fd8b182dd53202bacdd",
+       "style": "IPY_MODEL_938902fac9bf45dd876ffc222c56b145"
+      }
+     },
+     "9d7f6adcdad64a1e836dd9bb41562a80": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9da0b3bc25ea4b4d8f2a31aaee1b032b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9dee4918311e4e4f84bdbc1033ff4ca2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9df7ce1b3a5b4f0d8a883398e8833545": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_280ff64c14184ab48262a0cd1caaea1a",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_3a0d9dce61864ad39894659a6eb39c91",
+       "value": 50
+      }
+     },
+     "9e3759f8702b46e6a6f7097b9baeacea": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_c7eb3aa9c6e847c49835d344b00191aa",
+       "max": 2000,
+       "style": "IPY_MODEL_9c4b3781365749dabf296ed0c95c6464",
+       "value": 100
+      }
+     },
+     "9e43b3e516a54c59afce7a03ed510e9c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9e8eaa807c1c40b39178004024fa644b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9ebe2839ecb348b49f5402238d440c94": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9ed709265bb94ea1a2a27cfd02a13b0a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9eeed48e563a4f40a05034fea4e9e871": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9ef03cb11de34a488ae0096616bc2d4a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9ef7afa5888e419b80459574f8158a66": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9f0785c12f7943adaaefb141caffc0ac": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "9f0d05507c1e4bfe9de677ce8501b2eb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "9f0d55bfddba4a7eac31fde02f4b0387": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_4dc5c797d6714f2796f1275624c817ad",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_7ba921693bc3419b963af1fa5c7d108a",
+       "value": 5.74
+      }
+     },
+     "9f582d4617e442ca86a3e90f1b1ee9b2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9f7981dbebeb44c89e4a3b45a1ff6ec0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "9f7c231966c84fa88d34407f64c86c91": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a006bcdd055c4483b342fa6f29ea3c2c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a020e83ed3234d238c4cc736e482ae98": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a02eb837123c4d018359451d4a2d3764": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a03d543642a54cd2b04eb0ada9f3deff": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a052ec1b27b44911ade9fc23faa409ae": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a09b7e0bc3be4341802b0f2983675ef2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a0ec9ae62010465496e12379cd6dfc3f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a0edc6a2f4ea4df59180cfd75e633517": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a14b725a3d6746328c723a07236849a5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a14e5ae554a544dc92b353902a186ac1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_370849e15ed14071ada1450125fc71a2",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_9d35868b0fe94ef09d377ae4e70cc383"
+      }
+     },
+     "a14f976ea63b4209b4008a991724d12c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "a192534a81034bb6b9962c7f4c17dcc6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a25758382255414bb4321c6ec7bc6097": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d6c96a0acede4bc0aaf75b83c838f2f7",
+       "style": "IPY_MODEL_2e9ad4a5a17e4b3096e620b8a28144a8",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "a25e05026346492583b8ee82c757ef2d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_5897357f4c9e4c41ae555c3b867b831a"
+       ],
+       "layout": "IPY_MODEL_1a863a77f1f9422eb0211acf192ada36",
+       "selected_index": null
+      }
+     },
+     "a2659ca3aef048e5845879dd3e4f9ca7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_05c3683d3f6c4ab6999de0425aab9d12"
+       ],
+       "layout": "IPY_MODEL_33d0be65bbe247b39463819e5614ba47"
+      }
+     },
+     "a2c53569fe914dfaa8a9e2adbf65ae2f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_4aff20d454334bc592d4277fde34613f",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_8368fe357a8843cf90d12cb4ff298e6f",
+       "value": 3.1
+      }
+     },
+     "a3204ea53c344b7aaf6c823cb9e9e07c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a33971dc7218436c83e0e06a0286987b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_c528103ee9124fd38019ca899f225b73",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_6af74ce5fdda4d2a8ead33c498d14549",
+       "value": 1
+      }
+     },
+     "a364c8a0c5ac4bce8f1b2d5cb21478eb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a381793da2e84dc4ac68c5f1413de51b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_f8c0214089024038b3ee6136ff7acdab",
+       "style": "IPY_MODEL_58cb64efebe54fc0b9171c33a370e3de",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "a3a6bcb43d4545fda7c3e4a4f7dbb9d8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a3ae369bc64441c581093cd89da7b2d7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a43840f9754f48fdb7b16922969098b7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a439da1b5dbe460fae6716fce1533e1b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "a4528118f39d44db81f6c69d39b62755": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a472bdd4115b468790d295e52e9b40ee": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_8cd4c6089b73456193ade379d87a103b"
+       ],
+       "layout": "IPY_MODEL_3e2c3d3959f641ca8c4ed49ea2caaee0",
+       "selected_index": null
+      }
+     },
+     "a487fd2c0fbd4479b19c35c82ed1f1a5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_0e18f784c62b4592bb8f0a0137f2aa43",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_f5629c3330c0495ea9c3b22b19e09dc2"
+      }
+     },
+     "a49a6aacdeb346009695124d40cd0d0b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a548fb795fc1463fb253d5652f20fae7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a5670804c8c84494963f22ec27662502": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_896eec32714c48089a43babb407216f3",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_abc3b1bc6f04493196cb3921bf53a50f",
+       "value": 880
+      }
+     },
+     "a588e85d525748f1abb7d089d59025b5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a5982be4ea084fe4be8ae9ce115d33f0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a5a11a1d148941cb8b98d38ba611533b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a5e7afa2b13544e1a77cdc5d1e8a5ab2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a5faa5ca617a44f4aae13d0f10da7481": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_908e149e2c8a4c7db267c27341d905cf",
+       "style": "IPY_MODEL_779dd5cdc3c04a268c2eb420b414088e",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "a6178c42bc1e49938c0ff4b2b4a851b6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a62a7401c6264aa799797e16778ef7c6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a644e3143f2f46bba555aae33a65e250": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_0a6c5e06bdd14ca19d72be6e3b8af54e"
+       ],
+       "layout": "IPY_MODEL_7c185c1c73344affafc4c8256218a14d"
+      }
+     },
+     "a65ce334853643da93b948c9bf5e1869": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2d37031f158d40abaa43f0594b1b0eee",
+        "IPY_MODEL_3429fba3309c40b5b1e1259dd7ff39f3"
+       ],
+       "layout": "IPY_MODEL_045ae53809cb42a5895707575d65e23f"
+      }
+     },
+     "a66319781b94422aa9a76d4152bcdd15": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_99b9c8c9d9294bcea17fbf4262169061",
+        "IPY_MODEL_a472bdd4115b468790d295e52e9b40ee",
+        "IPY_MODEL_305c767f789c4279b60c2a5628f71221",
+        "IPY_MODEL_5eaa2ea30dd4493fb64ba24321d87a81",
+        "IPY_MODEL_2f5a25811a25407caa5ed9736180386a",
+        "IPY_MODEL_ede49980abdb49778fec12e5ecd42f02"
+       ],
+       "layout": "IPY_MODEL_479c04420a9c4db88676175966b6ddea"
+      }
+     },
+     "a69690a59e75427cb3df23767adb70ce": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a69de714c066404fa3f8d6071c4f3437": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a6d3b72fe80d493b8ec89334e23b9a83": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a7390cd6f5fb4a9db6ddec1b1b909128": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a75abb0454014fbfb53bee9b54f2b6be": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a761920c6ce447f48c16d96af9f88dfa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a7e59ce166d0454c9f43694935c50d27": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a814ad01f31d46cc8bb06b3447141c78": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_dffb7d7e90f841c2a3c2357cdef47fcb",
+       "style": "IPY_MODEL_4d90bd3dd97145a6b0db24e6b77a5953",
+       "value": "Grating Pitch:559 nm"
+      }
+     },
+     "a84a2b29351841e880b916fcb506e60b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a8776e09dec349cd9d8fbbbbefe7dbd0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a8ad80b5d807405c9e45a9413fab0f97": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a90db4a9a69043a48c171296197fe0e5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a942e16106994722ae5dfdd199aa5f32": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_954adb7652ec43338350ad57efb74d48",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_2d7836a42b724713b13326ba8b25c06f"
+      }
+     },
+     "a95589a386964a429a240d3670a88a4d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a9a1b83e6a134ceabcaf3f240fdc9f0e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "a9a432f6241f44c896bb83084f9a41f7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a9bca5882da14534a98182ae2192548c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_3097de95f2234ffa9b09bdac11517524",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_e97ac5eab99b4eee81b932c24b30b6e2",
+       "value": 1
+      }
+     },
+     "a9f6d17a229b4de1a282d7f469ebc186": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "a9fd1bacccd946cf84a2637dd5520794": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "aa141600d4fe4ee8a1ae32d59a7577f4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "aa4eb3a5702a4983b154678a3637ea9b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "aa8112041ba34cd2a800d960fd244aee": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "aa8599494b8148c491159d14e70b10fc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_17597e9365f341ffb36a467cedbc7250",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_2ff4e56e1e6646c78a5adb37564e43d8",
+       "value": 20
+      }
+     },
+     "aaa621c72ed44c8d80259c56169f7143": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7c136cb9c6674cd885da943a5e5cb4e8",
+        "IPY_MODEL_5ac9db84c3404043b38419121ae397c2",
+        "IPY_MODEL_1b498d9debbf4ab7a891554790593df0"
+       ],
+       "layout": "IPY_MODEL_a84a2b29351841e880b916fcb506e60b"
+      }
+     },
+     "aab99d5a938946de8a04be5fae3f5eb3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "aaddacc4edcb4b7da0f766877f0f459b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "aafc6de014a54c29a7099996cc4f6eab": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_4711a9a9eb284ad088aa38d1c8f87f5c",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_adc604f280c74484bb51b52630435baa",
+       "value": 0.8
+      }
+     },
+     "ab2cd39d52ce482e8d0504ec69607bbb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ab2e35861f0547cfbee273ed14b1afc2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ab789f7b9d8a49aca434a5248c81bfa6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_327a5f338d4342a0bacf380e238527c9",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_93f0932b0b72406eb9647a852882b949",
+       "value": 3.8
+      }
+     },
+     "ab82f774b5c34905a3cb67d383eb9d39": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d31d136b07db4342bc606f59393aee9e",
+       "style": "IPY_MODEL_c4744a92369a4b67911ba7584c7abba0",
+       "value": "Outer Zone Plate width dr:210 nm"
+      }
+     },
+     "abad228b5d8647febd49bf15689e76fe": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "abc3b1bc6f04493196cb3921bf53a50f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "abca03721ef542dca49d7c85f17b16d7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "abfd79836bc2412da975fb417f1337d4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ac3e3e1dd71541ee8e8f83be381b825d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ac8a5e40fc244c9aab19134cc7ba02b2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ac9a7818c0e7471fbc2968daadd97a91": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "acdc5dfe51f34252937ce65e19f78eab": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_32ae9d6b141f4380bd6042711a8883b9",
+        "IPY_MODEL_72a7326a72d54dfd93b33f81f7d44cdd"
+       ],
+       "layout": "IPY_MODEL_e9d4d98c9791456abcbcadd777d2bb8a"
+      }
+     },
+     "ace3a8cea2d841988d974281435e2a8c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "acf6ed2b3474441589a7fb8899209f24": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_c63fbec6f6c34ac99bfe7d76cd3cfe37",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_cf2a9e94276d444aad779e335d0a9114"
+      }
+     },
+     "ad707e8ab1df489793ba232ed8c9c91e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_b1d1cdd073ef42b9a3e771f57d0afbeb",
+        "IPY_MODEL_c2355509c13d4e348bd77da36437c822",
+        "IPY_MODEL_0add05b2e852466f9401ffa8e5de53b7"
+       ],
+       "layout": "IPY_MODEL_4393ae8743874d3bb4fa1060486b4fa6"
+      }
+     },
+     "ad76cc84e78e4a0abffd084f0ae68c8a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ad99e43a80c942219c716739f3db21a0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d343463d46d74526804b9c0cf43aba1f",
+       "style": "IPY_MODEL_d64e8b04f1c744d690bdd0996e1746f2",
+       "value": "Energy range (eV):"
+      }
+     },
+     "ada37a9d5fa94e9e980fb440e8bf5810": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "adb306173a9949d19bdc94a654335263": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "adc604f280c74484bb51b52630435baa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ade0fd5dbfe64bd5aa545fe57336f5fa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ae0dbdfa56e941b1828316ce3bed0be4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_f23fde77f4f04750a6eaa2c3c8d6b09f",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_f455b32314ec4e729fc6ac935c7487f8",
+       "value": 1
+      }
+     },
+     "ae1472b7ac864500a7e7fb20ee28c408": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ae34631a85eb4cf2b4ee06968a465417": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ae362f912cfc463db0b0a70423942f72": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ae3ac9e50a724d1ea50351b5471e6d20": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ae40043acd384004af774aeb1bd62da5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_09a1ae5ec20c42738306fa842b0836ad",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_695dc2f42d2548348b1e8a4615ba1e2e",
+       "value": 0.8
+      }
+     },
+     "ae4ac4ba726140508e8a3852b5513c4e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ae622672125740aba082fd768ac23c0e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_e83e91565bbc44df9b373b71e82eb134",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_ea7671e4024e45c88c1d76effbd584ce",
+       "value": 381
+      }
+     },
+     "aec293726fb9433d886c373d65a35052": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "aec37f0e80dd4ba4ae9a58673526a561": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "aed99a9f471d4e52b3b13604b0a243c4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "af47df33f28543278dc0dd9782945063": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 0,
+       "layout": "IPY_MODEL_fa20a1720bfc47868b136c41382d7326",
+       "style": "IPY_MODEL_9f0785c12f7943adaaefb141caffc0ac"
+      }
+     },
+     "af4b35df3106455fb0952265fa6141fb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "af5cfa183d434cc18e5906f12c8ac9ed": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "af84ec1d323c4a708c44ef6a3eb53e8c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "af8a062f54e14064b57a85cdb809bf91": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "afe7175a908a4390b57c309ac9bdcb97": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_7a4dad0aaf31452caa996e08690955ed",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_3f07b1e110d44f4fb589356b23473d4e",
+       "value": 0.8
+      }
+     },
+     "aff3fb9e92fc4d39876e1372a1eedc1b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b0285d870cff457184acb2c3addc3b26": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b05c89cd877e4c16a1f4974384cfcc12": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b0628f28de154271ab2026dd4347e069": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 3,
+       "layout": "IPY_MODEL_e2e6a7ac34c84e378d4e5e310ed551d7",
+       "style": "IPY_MODEL_1cb94be0bd864d65b365c1d22646e9c7"
+      }
+     },
+     "b06fee92064946ce9108f004faceb742": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_7a8160b4085a4202a11652381b6f4e47",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_9314832a77484c5f817035c1f6a0b09d",
+       "value": 20
+      }
+     },
+     "b08f1dcf92fd436eae1d3cb21498aeb4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b0add1a1fc12467391c0541db8971fee": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "layout": "IPY_MODEL_b5b15e86f42048e68226132ff706c120",
+       "max": 1,
+       "step": null,
+       "style": "IPY_MODEL_4995e0fc002a4eb2bc219c989574f706",
+       "value": 0.25
+      }
+     },
+     "b0b2797333a94f3dba2aaeabe9faed8a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b0ed1107289149ba81fee83b270b1711": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d9d018cf0f634b90a49608d8b9a615f1",
+       "style": "IPY_MODEL_62b0f354406f450db07bafd2b6923c99",
+       "value": "Detector (m), "
+      }
+     },
+     "b1396dbabf7e4f7faa78ee90077ed2d0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b13f2415d7674072b8f288556a2b158c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b14b3e87d5ec440aac1209a957ba4864": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "b15a78c95b954cbdb433593682d4d611": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b165d89653194a3192d1ed39859108df": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b16aa00d69574aefa184625abe9e1604": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b199cb7342fb4545907c788a2ec7005d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b1d1cdd073ef42b9a3e771f57d0afbeb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_c1a2726811f94b28a36b0b7c864162bd",
+       "style": "IPY_MODEL_7011433627b44d0f8055a5ce303ba875",
+       "value": "TZPG (mm):"
+      }
+     },
+     "b1d4f2b6c953467eb477d4d89167c8d6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_30cef6bf6de54d619a0540a238435a5a",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_621213403bc04ab580eb4fbac6e9dc48",
+       "value": 880
+      }
+     },
+     "b228319d38584bcbb295d9fb23d68742": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b24c0a32052c41d6adcddf02f80494a5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b2a0aff6a9c94db08128187753636661": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_8fb236641ab84f578aea1d701711dd2d",
+        "IPY_MODEL_1c719c5cce6342a3b6c820efce28d8df"
+       ],
+       "layout": "IPY_MODEL_5713d6a7bb6649958930d5a4babd9c36"
+      }
+     },
+     "b2c8d9273e7e4284a4c1ec1d67e5a5f8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b2e6ff627ed745e8940e5c20c2cf6347": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_065d9fc97bb5497ca3aa434dcdbfd6b1",
+       "style": "IPY_MODEL_64d7ebb4eb924e0aa76c84fc0dbeef10",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>740.48</td>\n      <td>754.82</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>740.48</td>\n      <td>754.82</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>740.48</td>\n      <td>754.82</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>39.76</td>\n      <td>24.21</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>39.76</td>\n      <td>24.21</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>39.76</td>\n      <td>24.21</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "b2edff5728ad4a4d99d3a7a4ba30fead": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b30d8ef36acc40478206c614adf7bfad": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b31c5681dd364522a538cb5d4d83e5d8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b335f25ddee4414eb1a4fec7e175ba53": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b3a1bf04e9b04fd6bb9b2e52d37d8a03": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b44749855deb483c96bb3fb8653212e4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b44fe5c44e6d4d08bd23dafbdabb6f87": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b49599b2a22541668a5bc3819fd51399": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d13a77587fbf4d77b4ee25288cb2126c",
+        "IPY_MODEL_20c16348d15a4df3bcc6d58379a35450"
+       ],
+       "layout": "IPY_MODEL_b31c5681dd364522a538cb5d4d83e5d8"
+      }
+     },
+     "b4b36d8309304d9d9e5c445947ebb1e5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b4b9d7e6b1b54d338bde03edd0551439": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "b4c789fe1e4e423d97d822aaaf599f5c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b4ed6577720f42469da0c932148a2687": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_18560cbbc89b4a21815374d36c85789a",
+        "IPY_MODEL_71f4ea80ea6546b4bf3b364fddcbcd50",
+        "IPY_MODEL_3848f53a073b47639d7157ee62de4eef",
+        "IPY_MODEL_556c9f2873f84e85bbfb8c469be78816",
+        "IPY_MODEL_bb342591669b4fc09e7b35e0ac23f43f"
+       ],
+       "layout": "IPY_MODEL_901d6a2618da4216adc3a68a7ac21ed2"
+      }
+     },
+     "b4fbcebe999549798b49fb4c5329fa7a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e7299e0190d8436f9c40153affaa19e8",
+        "IPY_MODEL_bb87ed58405245a1b1d512f2d0e9c873"
+       ],
+       "layout": "IPY_MODEL_5b402bbcf0684b7795a572b4df075d80"
+      }
+     },
+     "b502849ac55642b3b6c5a7435a65954d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b51a3288e7484f64897d92fd026111d9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_cb38fd50238546b38803d6e650378de6",
+       "style": "IPY_MODEL_9c82dec939534fb7914f4b6fcab19ade",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>734.64</td>\n      <td>750.39</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>734.64</td>\n      <td>750.39</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>734.64</td>\n      <td>750.39</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>174.34</td>\n      <td>157.27</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>174.34</td>\n      <td>157.27</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>174.34</td>\n      <td>157.27</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "b529c87c4ac44cd7af83f86a99975fa9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b596c25ea08a48b690680b4f389c33ad": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b5b15e86f42048e68226132ff706c120": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b5bef905571f4c87b1c035c00162ff80": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b5f8448b81d44ca5a64933adbad9fda3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_c474a598b0844346adb7f57bc08c02e2",
+        "IPY_MODEL_fd6da5315e774c30918d7409a6e74a2f",
+        "IPY_MODEL_f05bd78e18c142d3a3d726ca1fbce319"
+       ],
+       "layout": "IPY_MODEL_26a653f497c64369bc2d3f0ab25f7d9e"
+      }
+     },
+     "b604fb35dfce46ec80da3cdc19e48a1a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_22e9b07f45dc4e6cb6ed704626aaf22e",
+       "max": 2000,
+       "style": "IPY_MODEL_a09b7e0bc3be4341802b0f2983675ef2",
+       "value": 200
+      }
+     },
+     "b60c3509396f4501a5f8567d9638a96b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "description": "Update",
+       "layout": "IPY_MODEL_eac2418d91a241da94d16bf49262e97b",
+       "style": "IPY_MODEL_4d1b0c910f4d48b284730de62778f1df"
+      }
+     },
+     "b63341388d8b40698c932d0745665571": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b63a868db6cc400ba35005f2e0636094": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b651be26532b4ec3be5387e3ad97d52b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b68f06648d2d4150af3a4f864807fec6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_8fa7bb0cefa34066bc6d9a118a7ada5a",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_26d3bb698efc407cb5ac6fd2e32043e3",
+       "value": 860
+      }
+     },
+     "b6a075d858f949d3bfc084675f7232c9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b6f705feaf464b1ba7210b52fc3ee597": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b706d1e6515b4bc9be4c63b90393c67b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_77a26a4a672d4a10ad72394fdce2f459",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_9c63b8c6825b4db2a2eaefec8802e8a9",
+       "value": 5.05
+      }
+     },
+     "b70a4c09d4034d71897984e5bbbfbd3b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b75d65297c80448cbfa29db04863b15e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b76e283a035c453980b7dcd15d734428": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b790a7f3c0c5434f99ef687d27f95b8a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b7b0c110ce7f4df5bf24dc5393f47bb8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b7b33032c5cd4b1e8cc71788398749b2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_926b4b33718d45ac8ab937e7792f3907",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_b24c0a32052c41d6adcddf02f80494a5",
+       "value": 2000
+      }
+     },
+     "b7b6754e19fe4a5ebce2d0f51447d9d9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b7cceb85700347bfb13fd866b2da1ebf": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b819b272c70543b3b9000fe6b67a8c7c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "b83fe8cf5aa443b8b21161e94bd2ddcd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b84c1cb4caba4acdbecb53cb1c1589aa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_b0ed1107289149ba81fee83b270b1711",
+        "IPY_MODEL_256215f9f57e4614a5b37128425a66c0",
+        "IPY_MODEL_aa8599494b8148c491159d14e70b10fc",
+        "IPY_MODEL_a487fd2c0fbd4479b19c35c82ed1f1a5"
+       ],
+       "layout": "IPY_MODEL_30ea082e01454a72811a218080485c2b"
+      }
+     },
+     "b853ecc147da479b91f397d3fc1f6195": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_9d1802dd9af14b66a6fac8fbc3a6506e",
+       "style": "IPY_MODEL_9aa1680472b74465a6e87eb12f1b23eb",
+       "value": "Membrane (mm), "
+      }
+     },
+     "b8f03880c3424c9b8f2f68ba16cbdd11": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b922de1c4412441abb54b6d4ab8595af": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_673a124bc27143fb9454b08c0fcbb053",
+       "style": "IPY_MODEL_99346cbf21fc4fdcbb91f43c16ce5c18",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>24.37</td>\n      <td>8.52</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>24.37</td>\n      <td>8.52</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>24.37</td>\n      <td>8.52</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "b9636513b94d4146a2a969d3f7212635": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_7e1bacf8e76d46dc91fd323cbc735803",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_f68c3c250e6b42f8bef66cccc1c96ff2",
+       "value": 54.74
+      }
+     },
+     "b96cf4cf5170445e91e1e0f161d0d845": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b9af07ea39c5460fa36f9520f3e65584": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b9bd7caeb73f444a9dbbeba29512e8aa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "b9f96628b8894cdfb106bc996bd8e20f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ba13a53384a4449ea662246fb1e957e0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_63c34085916d41d5bec8cedd6d27b9d3"
+       ],
+       "layout": "IPY_MODEL_1d2cf49ea658495e8feb7c70045b9f23"
+      }
+     },
+     "ba21afbc680b4d0f895210b07c612514": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_14f7109f4ebc4787a0539ba7831bea2c",
+       "style": "IPY_MODEL_17ca941506314ce48c6478b3ff18d7e2",
+       "value": "High energy"
+      }
+     },
+     "ba3a6c53558f45ff8d0692be668af872": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ba5ac17758a14a1491015a667ebcf7fe": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ba6788e568ef427a9eac817d86fcd865": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "bb1c1ad990b44267a4938c6215982974": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bb342591669b4fc09e7b35e0ac23f43f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_a14e5ae554a544dc92b353902a186ac1",
+        "IPY_MODEL_4fe14ce208b9490a9c6dc1205cff5fe6"
+       ],
+       "layout": "IPY_MODEL_bbc1dcbb2aa742e68fc0e8820fed0842"
+      }
+     },
+     "bb3fb55a50e648b5ba04ccecdaf83404": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_c9b7fb2fad244bd49a741d5cf9e2c187",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_8c383b85ee81417ba036bdcdbb57b4d3",
+       "value": 708
+      }
+     },
+     "bb64ef3939ad4b388c0874bfd3387ab1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "bb87ed58405245a1b1d512f2d0e9c873": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_87889a997fe14bce93a83ab5579df700",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_e7dc83684da1459b9cb661385ae9aa7a",
+       "value": 54.74
+      }
+     },
+     "bbb24af1a8c84378b2938a5b1b0097cc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_aa4eb3a5702a4983b154678a3637ea9b",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_11898ed2464243a191564ec16153e1f8",
+       "value": 5.74
+      }
+     },
+     "bbb49d3c319b414eadcec01dab6f927f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_79a689551db24069ae992286b233a64b",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_bdd4c24267154010b22fae40f68426fe",
+       "value": 5.05
+      }
+     },
+     "bbc1dcbb2aa742e68fc0e8820fed0842": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bbccb8f516834074a8b76b8f0358fc2f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bbdf6084e2344a4b92c4d2724141a007": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_c48d87df576c4d308ae8bc2298d71dd3",
+       "style": "IPY_MODEL_f9f70729bbfb41a0acf81cb9f5220c8d",
+       "value": "Outer Zone Plate width dr:192 nm"
+      }
+     },
+     "bc1bfc5ccbee43469ae61fd840f0205a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "bc1ceeffd7bc4225aff10fca0a9afb5e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bc369aaa87624c86a5be1596dbc45a7d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_6274f0ae62f942e5a8a205663aca0518"
+       ],
+       "layout": "IPY_MODEL_abfd79836bc2412da975fb417f1337d4"
+      }
+     },
+     "bc52293b78d04d1398361a993603c750": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "bc55db4f2dec4c6eba762d3444d44cf2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "bccae2dd19344ffb98fe1ef393c4345c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_0a5b32b383c34987b9a71b2af3577977",
+       "style": "IPY_MODEL_47583746ccd84efbb92ced48fe91959a",
+       "value": "Detector (m), "
+      }
+     },
+     "bd0ca96ed8734e90bc930b9fc6e619f0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bd1748f967c24565b7514db9952935dd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bd25ba00bb4e436391d4bd680854e158": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_89b9e2c879434f828fc10cb95c1fa977",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_f56730ab95d94b42a125d1dc0eb3402c",
+       "value": 5200
+      }
+     },
+     "bd2f09d9d4d04e65954591862909f28a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bd477eeb8df54cea9843698c8ebde1f7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_80b8e7824b6b4d0080d6b7a71711c924",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_0638c50db4604026a5909b916fb5c22f",
+       "value": 0.5
+      }
+     },
+     "bd8e68284f3b43e78331bdf700e4cd93": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "bdbdab4713cd4d7b9ad17c53b9f53aaf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_ac9a7818c0e7471fbc2968daadd97a91",
+       "style": "IPY_MODEL_3dd028afd1a24de9a55718a588d59e4a",
+       "value": "TZPG (mm):"
+      }
+     },
+     "bdd4c24267154010b22fae40f68426fe": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "bdfaae25e14c41b5905673d4c6a1662b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "be36e48863a249a8ba0b327dd72eb1e6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "be40e1cd73d74107b5a4554f9b14fb83": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "layout": "IPY_MODEL_a761920c6ce447f48c16d96af9f88dfa",
+       "max": 1,
+       "step": null,
+       "style": "IPY_MODEL_8d6fb60768534b208c359a93ef93d9f2",
+       "value": 0.25
+      }
+     },
+     "be68b0fd31b9432da7dd7e15c6551dd6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_99babc5f59054f77848cc79140d8b634",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_19d49cc37ee44d62a82c6d42f0088efe",
+       "value": 54.74
+      }
+     },
+     "be6a77ba38a54f8a9a5e0be52cfb80fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_bdbdab4713cd4d7b9ad17c53b9f53aaf",
+        "IPY_MODEL_6f9684b551b7481a95aa831f0d21b9a7",
+        "IPY_MODEL_afe7175a908a4390b57c309ac9bdcb97"
+       ],
+       "layout": "IPY_MODEL_d86d00de404d42e9a120c206792e5f7f"
+      }
+     },
+     "be78b926e0ad495aae07753eaafb2854": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_94d267ce78bb4518a37d86f81a9c4903",
+        "IPY_MODEL_c7318c2818344553b9a6ee9f82866cf3"
+       ],
+       "layout": "IPY_MODEL_499fbe08c0994ef9a0c322758183c953"
+      }
+     },
+     "bea23b4f4ef24bee953da3b6e05ac0e1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_59e6dc1307a040e7aa354e026036ff77",
+        "IPY_MODEL_0a40246c3a76479fbf76ad91d1e23944",
+        "IPY_MODEL_e11bf1193eaf4008806f78aefde6d8e1",
+        "IPY_MODEL_45207426a1804dfab251acc0e7538b33",
+        "IPY_MODEL_d55bf92ebbd543458fb328aa330b09ac"
+       ],
+       "layout": "IPY_MODEL_5e3c35f9417f4631a9fa368bc68e5f1c"
+      }
+     },
+     "bec27a69d37d4576b42f9ee94f6fd363": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bec4e03e57f948e1a2dceb2b8da4095a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "bed70c7195c8410f8b299b306ed0c8e4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bedf3064b024405b8eaec352834e3d1b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bee2fca98a9b472ca7f9197c589a8a14": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e3d4f3123c2a416db640a6221290f7c9",
+        "IPY_MODEL_e0ab62a1be71457daeaf6363bdd5444b"
+       ],
+       "layout": "IPY_MODEL_1929449192744bd49cd6d1fd756f9b80"
+      }
+     },
+     "bef5dd5148184b80873db37119306a32": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bef8dbe624dc4a01baa8a469e9de7652": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_7953fee2942646f1bf582c8f7c6a7ca9",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_a8ad80b5d807405c9e45a9413fab0f97"
+      }
+     },
+     "bf09be76fafb43c7a024f24fe05669fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "bf22c8e8e6cd4a9796f358f5b30bd54b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_3d014c71c8184f798d753e98b7cc0a3b",
+        "IPY_MODEL_f36b683997af41a28dc95a69dd478835",
+        "IPY_MODEL_3d6fa9980ce6435f9a1d7f7776945514"
+       ],
+       "layout": "IPY_MODEL_bd1748f967c24565b7514db9952935dd"
+      }
+     },
+     "bf31392c0d5c4b719f34c588db583d32": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bf60c8db2c74400a907401904a7d44e1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_89768eb3e20342aca6bcda60aed46670",
+        "IPY_MODEL_4e6d9ce0cc9944eba03b6feedc314170",
+        "IPY_MODEL_b06fee92064946ce9108f004faceb742",
+        "IPY_MODEL_40db61a90ae24a8a8014031776f3a7fa"
+       ],
+       "layout": "IPY_MODEL_7310590e3163460e8c9b826ad334f425"
+      }
+     },
+     "bf6b943294cb404c9f21370241015624": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bf6ceb35d67345479623c4a6944f43b9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_e5a6e38fe1a844a987871690750d05e4",
+       "max": 2000,
+       "style": "IPY_MODEL_8fac06980ff4484ca023e24a3a5602fc",
+       "value": 100
+      }
+     },
+     "bf91ccf62ff448a5a717ab411c403b2e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bfac3a154170479f8ef58ef4269388a2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "bfb18423290f44b9b2e776123232e9fa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "bfcf655aee6741a8a59af78a00494709": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_e993a1bbf1a4429d8f55520dc5cb9047",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_6ead73290555442badc69fe1b5ffc061",
+       "value": 525
+      }
+     },
+     "bfee23e97e8b4c36928a6c0f1795ec58": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_778dd955b00a41a2a17b23d18076a6e1",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_e8317e5543d14b368137ad16eba99cef",
+       "value": 0.5
+      }
+     },
+     "c00b3644a0ed488ab1e4a0879ff8d175": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_00d83bc536044cbaa7081f853860f10c",
+       "style": "IPY_MODEL_d18ff27d9a2e4075bd0999c139b84af2",
+       "value": "Low energy"
+      }
+     },
+     "c024b058213e4f72b799eb6561a2af3c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c04d4b179ab041e491bbafdbe2cb2953": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c0a3b186bdf543d7b2c8a0d61eb2d4fd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_72055e782ec7408a80f709c3dd1e0bb5",
+        "IPY_MODEL_1323fe9418a747bfbda692ad021757ca"
+       ],
+       "layout": "IPY_MODEL_b63341388d8b40698c932d0745665571"
+      }
+     },
+     "c0a66750d27b40e68603235cf9c17782": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_e8abfceef65b49c4a5f5e406f240b18c",
+       "max": 2000,
+       "style": "IPY_MODEL_26c46c9642744230808e4a702b419a2c",
+       "value": 200
+      }
+     },
+     "c0abe011d4bb4251b26a543c7fc6c33e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_50840e29b9794dc19fbb435affe41631",
+       "style": "IPY_MODEL_ffe38966f27144a88cdd7eb29dea4afa",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>118.52</td>\n      <td>133.14</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>118.52</td>\n      <td>133.14</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>118.52</td>\n      <td>133.14</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "c0b670d4106d4b369f4040b6e330ca92": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c0e785e141a9448f90a131b5be2b9cf0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c0e9205e95d84dce91c54e660802c5b0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c13f38cd58444d2d98837966a1db769e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_b0628f28de154271ab2026dd4347e069",
+        "IPY_MODEL_567a48e881104804967bf8cd9bb734e4",
+        "IPY_MODEL_96ed9000ca7e4bddb43d160f24844aef",
+        "IPY_MODEL_51b21d368bea4e12b9745ecc0f36d0fa",
+        "IPY_MODEL_ad707e8ab1df489793ba232ed8c9c91e"
+       ],
+       "layout": "IPY_MODEL_e23b3fc672ed408a9284d8d60b2da33b"
+      }
+     },
+     "c1670012f6504fcc85ecddb7f406ad70": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c168088995664f3eb6171bbccaa8f859": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c1a2726811f94b28a36b0b7c864162bd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c1eb55fd7bf4486ea63005c687c3705f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "c1eee4b29a234915a7e975de3d740ed4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_d698f7d237114b72a9ecd655d79e23bf"
+       ],
+       "layout": "IPY_MODEL_d1f264592978441fb5fb4416ab627351"
+      }
+     },
+     "c204477bb9b541069aeb91417584ef12": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_ffb9023a9db74e9dba659478dae0d206",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_fc6321dd0cfa43ed904cc7cbdea69707",
+       "value": 5.05
+      }
+     },
+     "c20904797d7e4f60b219f84256efc43d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_82fda8bbfffb4ba189de426383091b8f",
+       "style": "IPY_MODEL_23025a368508491b8074ba3da9c2ce29",
+       "value": "Detector (m), "
+      }
+     },
+     "c20fdad8c5c74be08bef92beb4cfa6ab": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c211d58e7849455fadfc734888548311": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_3e3ccd91d59645b78833dbe900e20e8b",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_9cfb3c7424f942b5b0629eb43c247f66",
+       "value": 0.5
+      }
+     },
+     "c2355509c13d4e348bd77da36437c822": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_3ff7f0f3112a4a61a5028b888cb61747",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_e46b1e8521cc4bb384db85eaf72a4638",
+       "value": 0.8
+      }
+     },
+     "c2381f2f7bbf4a639dc1c9bb9f90499c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_7a773dcb42b3467ab5352e0f1510b418",
+       "max": 2000,
+       "style": "IPY_MODEL_857a0f00a75b4fc285b7f8b2789ba36e",
+       "value": 200
+      }
+     },
+     "c2537060c01c458494833a5176363404": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_c599b7cb6f0a40ec953eb5d81b202cf3",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_697a8cb7e15c4f3fa92d537790c57894",
+       "value": 0.3
+      }
+     },
+     "c2a2511702764fa5ac2e39abbd508416": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c2ab505c31254adbb7c5a655d40beca9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "c2b667c0991b451aa64bb934a925a494": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_f93c3c11978f44be86ae3dcd09393f2b",
+        "IPY_MODEL_b49599b2a22541668a5bc3819fd51399"
+       ],
+       "layout": "IPY_MODEL_92adb9fb6f1d4bd697e422ae7788fd55"
+      }
+     },
+     "c2ebfff042264268a5b0cf6ad25b1bee": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c33fce3046e040d4bcbf194cb2bc5179": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "c361dfcc09ea420f8392247c1eb4b758": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_27b9d9cc150642e1a21f7bc6ab5aca4c",
+        "IPY_MODEL_52e10c51abf74ba1818bbddb7a987ce9",
+        "IPY_MODEL_95073e8f40654b87a3b57eeb44acf7cc"
+       ],
+       "layout": "IPY_MODEL_f74ec4d8b61c41a3965ebc043546162f"
+      }
+     },
+     "c363bd32fd1743fab52a40d7eae82c3c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_af84ec1d323c4a708c44ef6a3eb53e8c",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_c6fb7c06a2584c5c9f8fcdca14d1f883",
+       "value": 54.74
+      }
+     },
+     "c369411c1ede47d388e649e7457c0265": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_19aeaf2303e04ed3b4360fa60c015797",
+        "IPY_MODEL_474365a24770471bb09e0e288c23540f",
+        "IPY_MODEL_1101e4705d924b53bae2327b1dc52f33",
+        "IPY_MODEL_7b71de25686240cd878c03176395ce28",
+        "IPY_MODEL_9b53a76ebad341a69eeada86169ca3ed"
+       ],
+       "layout": "IPY_MODEL_b70a4c09d4034d71897984e5bbbfbd3b"
+      }
+     },
+     "c373d0dfa59a4783b6f6910ebcf2e688": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "c383b641000f4691a26d648b56304103": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c3894160023e4722b97eb6f238e075bd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c3a93892e17544b68e9c7c4815b24ab7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c3bcb24daf824799a0468a1280ff6ad9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c3c40432af7644cb8cc67795e9b6848c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "c3cd2091118f4634adc474f9aa848b4c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c3d29f9d2a3f4facbf1487e0e62a78ee": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_fe77d08cdaf44e85882cd937fd251232",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_1efb59da7c4a46ff9fe10ac3a01a2f81",
+       "value": 1
+      }
+     },
+     "c3ffee83be43447f90203655c5ea9cdb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c41cd24bb78e4f89a1afbac92dd16a06": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c41f101a12634c57ab50481613303c14": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c446fb3be1df4deabbc1bed5a8dab7a5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_48eaf9f4a32a4944920f67ee9ef6af1c"
+       ],
+       "layout": "IPY_MODEL_a5982be4ea084fe4be8ae9ce115d33f0"
+      }
+     },
+     "c45910f261204f869a0b31cd84e9e796": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c4629f7520064104bcb5d87fbfe6a570": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "c4744a92369a4b67911ba7584c7abba0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "c474a598b0844346adb7f57bc08c02e2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_8a508a2a61ee46d7b98a89ea0ba21c4e",
+       "style": "IPY_MODEL_2106cd34f4234b4d8cafbd7f9f0b1edc",
+       "value": "Energy range (eV):"
+      }
+     },
+     "c48d87df576c4d308ae8bc2298d71dd3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c4aaefa9232240ffb649712fedcbcc4a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "c4f654c3a66d4c7bb5cf0e3310fbd692": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c52398c288cb472383815e432524af31": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_0ee1b4d4f53d46939587c48988ab8138",
+        "IPY_MODEL_52467dac1e244eb7bdc55d3123e872a0",
+        "IPY_MODEL_7132f5aa5f434635aac4111b484c19f3"
+       ],
+       "layout": "IPY_MODEL_f207fd0ef73b4501a7320341bf77aa09"
+      }
+     },
+     "c528103ee9124fd38019ca899f225b73": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c52c884126fb4a8fb7f35672acb64e72": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "c5526b3489ba44b290133933978cbb5f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_bfb18423290f44b9b2e776123232e9fa",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_29f194119c324abf906789b9b4a9db19",
+       "value": 5.74
+      }
+     },
+     "c597015364b64a4b975ac87f745d01e3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c599b7cb6f0a40ec953eb5d81b202cf3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c62592dda7254639bceae52c7c6415c3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c63fbec6f6c34ac99bfe7d76cd3cfe37": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c6fb7c06a2584c5c9f8fcdca14d1f883": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "c7318c2818344553b9a6ee9f82866cf3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_e3dda80fff6141479947a01382a34e81",
+       "style": "IPY_MODEL_0a0f542f278e41abadabea6d55387152",
+       "value": "Outer Zone Plate width dr:134 nm"
+      }
+     },
+     "c7603eb869fa4a2c9efd95288d25bcf6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2fe3595a4fe4411eb5a3e9a788a90586",
+        "IPY_MODEL_a9bca5882da14534a98182ae2192548c",
+        "IPY_MODEL_a33971dc7218436c83e0e06a0286987b"
+       ],
+       "layout": "IPY_MODEL_1608398a230247d79cea8ecf4d7f7c22"
+      }
+     },
+     "c799f250e3bd4ab28859c7aa6e835a44": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c7eb3aa9c6e847c49835d344b00191aa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c7fdb091911a46fa858b84461c3af99f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c825ec7bf6e944978f7ff83890dd00e5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_aa8112041ba34cd2a800d960fd244aee",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_38931a9310794094a07e62a6bd84a9a6",
+       "value": 5.05
+      }
+     },
+     "c8380130d3cc478bbcf98189e4679800": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e3f12e1caf6d4c6980e901bbe45e9540",
+        "IPY_MODEL_942d232a00b5490aa64a1d82a06f39d4"
+       ],
+       "layout": "IPY_MODEL_c62592dda7254639bceae52c7c6415c3"
+      }
+     },
+     "c880829a6ca04159a3c2b31e1bac6511": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_26bb86a582774688ab3dd7759237010b",
+       "style": "IPY_MODEL_1e4361433f9f4928a95a07e46fdd71f3",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>923.66</td>\n      <td>942.09</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>144.93</td>\n      <td>125.27</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "c8d604bc3af44535896eefbcd65491c6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c9024e7b869a4a93b9ae95bcf9c4de98": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_008288c1f0c24d95a70be3e032f68751",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_c3c40432af7644cb8cc67795e9b6848c"
+      }
+     },
+     "c90a0eccb4b14aafb7e1b99aa3ff603d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_57d55192ca9d42af9fb421f538662121",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_07955369d5104a1da5d2015a1344ee56",
+       "value": 381
+      }
+     },
+     "c918039080114470a82a7a0c29501e32": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c99bd31ae92e4918b026812a983261da": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_1e349bdc4c3141269927ff152f0cb0de",
+       "style": "IPY_MODEL_0e89a4f81f8a4380af173439ea2c31f6",
+       "value": "Low energy"
+      }
+     },
+     "c9afb09d09e54c178db02412860d05a7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c9b7fb2fad244bd49a741d5cf9e2c187": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "c9ba50dac1094b91b0a0f30471a2a9fa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "c9bede7beda24d8ea990db7ea56829b8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_230fe8ddc63b402d8dd1143fb14ebd1a",
+        "IPY_MODEL_e27fc9a951f34681a0064f534a02f60f",
+        "IPY_MODEL_754713d8944041c89bb959de74402853"
+       ],
+       "layout": "IPY_MODEL_9c989b0cd1c043e5b071dc5f6ca69c98"
+      }
+     },
+     "ca25df6722664b68ac1e4133b621efd2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ca312c3a313c40deaac941327537f221": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ca7afb9df81046c8b84620c75b443529": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ca9fd49900314cda92953d73f031e333": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_62458e9de9be4b41a8527a92f62b8b8c",
+        "IPY_MODEL_4fba4b26317142958d99a97fd1c9bb45",
+        "IPY_MODEL_c825ec7bf6e944978f7ff83890dd00e5",
+        "IPY_MODEL_89089eae9fd04b0e8cf5521f7c3696cc"
+       ],
+       "layout": "IPY_MODEL_9b1d810c4a8d4e5cb268dd66436e04d2"
+      }
+     },
+     "caec6c5ba89347d28f126f526baff2ba": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "cb00112097554dba87c10746c5d177fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "cb38fd50238546b38803d6e650378de6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cb52538c58c84992a7493cc0d48227ed": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cb67a8c80df14c438e27e1c5bf4360a8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "cb94b7acff5a4310b2c1c11c8010f9ad": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cbc52cb11dd146a882103a93b90dcbe4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_a5faa5ca617a44f4aae13d0f10da7481",
+        "IPY_MODEL_1236f6fd72a848e0b7cb3f4ba91260e2",
+        "IPY_MODEL_5a616074200840ba8712b75400b315b3"
+       ],
+       "layout": "IPY_MODEL_d8ae241349b6408b8c86a17a2a8613d8"
+      }
+     },
+     "cc2f91266d3b49fbbb12f4c081c4805c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cce496be81e14b608c9e36fab047c6a0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ccea9a0398714a68b2e156b4945d48fa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_748a731d222c43b4bd1097fcffa49664",
+        "IPY_MODEL_314a9597e264463c9baa03341ccf09df",
+        "IPY_MODEL_714944909cb34d35b02fc8c43b325653"
+       ],
+       "layout": "IPY_MODEL_e83e0fb377b0464a929a773e6f5e9729"
+      }
+     },
+     "cd1a6f095e2b4eab84dda3c15b31a197": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_58ba155869fc4095a9d81345425d1db6"
+       ],
+       "layout": "IPY_MODEL_62e70ab0954240d58af939a4aeeb43a7"
+      }
+     },
+     "cd31c43959fc4cb9a7e5f31c614d5b39": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "cd4265ec4c3f42af9d221ffa47a10aee": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_fbbb036dc1944c2e9684617d704be335",
+        "IPY_MODEL_606e9d5fefb3484999600243c7a1a3c7",
+        "IPY_MODEL_c204477bb9b541069aeb91417584ef12",
+        "IPY_MODEL_e814e4553d1547899188d4526ac33689"
+       ],
+       "layout": "IPY_MODEL_96101a048d36415ab269fa2ae414484c"
+      }
+     },
+     "cd45f126c13b47bcb3dbfa1dcc293c1f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "cd647eb1dbf94d67a7c595181e844e9b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cdcd4580d7cf42bf9b1d595234991ef5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cdf55c048ace4ec5961e188a6ad1a7d0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cdfea446c01241d3af41901cc27fde12": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ce163d86f178493fbaf23e6881985a25": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ce2e3d0e73c7465f9925ec5ca2c6e642": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ce2ee549dc7d45e5828616555cdd271a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_82bf4f2321844415a65e52be3191fa36",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_4fbba19df1444690bcb87b476c7dc63a"
+      }
+     },
+     "ce33b422b92c4866b25c735e4b53b372": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_e8f36ef7fa984dd494fe3bb74f9d0cc6",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_a052ec1b27b44911ade9fc23faa409ae",
+       "value": 381
+      }
+     },
+     "ce6d269271f648bd95b998d5a5e00e11": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ce985fcbb8f44247824bd1f5135b0edb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "cec8946fca2c4fdab284783f3ddff397": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cefbe4ec49bf49f6960301eb1be1be7d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "cf2a9e94276d444aad779e335d0a9114": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "cf3523438b1040858d50de58e9940793": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "cf73181277984419a8c60b63a2837003": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cf77cc8f06ae4d88b08b79fc5f95d198": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cf9842103f624cbab6115eda5f9a2c0c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "cf988e41f9af49acb18cd861dd9ba0fc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "cfce0ff4fe1248348ef2fdaeda9df8d9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d0a3009840c049dfb7d80e6a7db2f895": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d0e4709300e848e1908cefb20b6b5b0c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_19ad69fb3b5c4e669e872498e8978c10",
+        "IPY_MODEL_1931b49f139a4e56b28a1a6502de0455",
+        "IPY_MODEL_0bea43f5fefb4a70b14846ee460a48a9"
+       ],
+       "layout": "IPY_MODEL_9ef03cb11de34a488ae0096616bc2d4a"
+      }
+     },
+     "d0e6d423d5094797aa8e07b50361ac10": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d10140f801634658bec84de787485a43": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d1235bac8f2f434582186d546d1d4864": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d130bc55943f4ba6bee6f66eeb45ec9b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_5705f04ea026437c982cfd3848cb6be7",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_aec293726fb9433d886c373d65a35052",
+       "value": 3.8
+      }
+     },
+     "d13a77587fbf4d77b4ee25288cb2126c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_b63a868db6cc400ba35005f2e0636094",
+       "style": "IPY_MODEL_ead591fab80f47418041d3a04a091d81",
+       "value": "High energy"
+      }
+     },
+     "d13d6d580da74973814e85dc32a62290": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d18ff27d9a2e4075bd0999c139b84af2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d1922d60300a42a3886e72bba7956e2e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d193618a4eae4e27b83d95cffa31b99d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7aad60a3ebf14412815618974191397a"
+       ],
+       "layout": "IPY_MODEL_e73adf3b25c1435a8597a0abe201b4e8"
+      }
+     },
+     "d199f4cda8b9450fb8ef86bacdad6c8f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Source and KBS"
+       },
+       "children": [
+        "IPY_MODEL_e390ca3000884f7a9e2dbb641ca12f8a"
+       ],
+       "layout": "IPY_MODEL_72dfcce9ba9549668fcba708670144e1"
+      }
+     },
+     "d19d74d001f5431ab64d25305d043bb2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d1ac99ee0e734db987f1f7b2a6de70d1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d1b023fce1394f1ca09ac30b59e2dc1a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d1d217e798db4a11bb3dbf83ab291fa0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d1d55260bf254e35a7f8df1ab6a16f11": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d1f264592978441fb5fb4416ab627351": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d2288afa81494239ac61b002068ebdf8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 3,
+       "layout": "IPY_MODEL_f99a4e28327d459698f5b3178865a17b",
+       "style": "IPY_MODEL_bc52293b78d04d1398361a993603c750"
+      }
+     },
+     "d22c0947ffb8453cbcd9f0bc3c708fd6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_e666f34b46824295b31b6d2ba347e7c8",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_aaddacc4edcb4b7da0f766877f0f459b"
+      }
+     },
+     "d285432f89d94c1a8b1db22fce8233cc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d2bf15717d4a420c866af2ccdc160291": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d2f59e3a3ea345f4abfbca26550c8e3c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d3194e53d3b64108b9357e0dcec50ec0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d31d136b07db4342bc606f59393aee9e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d333d53beb3e42028afd8c0916c4d2da": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d343463d46d74526804b9c0cf43aba1f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d37adad632f04b20893b5375c19fe480": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d3a746d58aab4344b4922a755859aa29": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d3ab8c9d9bdd4d8fa2f79c54c2a41f22": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_ecbe3860080e47c091610ac1355bf54e",
+       "style": "IPY_MODEL_eb2ea7e802d74089a3dfb6519117659e",
+       "value": "TZPG (mm):"
+      }
+     },
+     "d3da53454def429ca92ddaad8e0e2331": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d3dbd40533d9441182e4fb8f40ee3a3f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_14761b3043e5429e8d8ed861bd9eae75",
+        "IPY_MODEL_45ff297c67d842b3ba4effa22cb23baa"
+       ],
+       "layout": "IPY_MODEL_39d56a7031314fd1aa09c3724485d93b"
+      }
+     },
+     "d3e4642549714ec38a08f1acbf5666f8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d40054141e284e0985397d41f09718a8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d444ff2c9d084276ae77b336114cf070": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d46ad83e5f22497587f9ee270ee883c0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_ecd9a8ef26964134bd8956f10a30b993",
+        "IPY_MODEL_d56a7c695a76439ea6156aa0e5a7aa00"
+       ],
+       "layout": "IPY_MODEL_9e43b3e516a54c59afce7a03ed510e9c"
+      }
+     },
+     "d4950f257fcb46b4aee4ef9d285db1ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d4a3123e5dba40a6a8ac4ba21a81a36e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d4efde5a30664154ba4746f08f977f73": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d50f77a2d7f14a60a9bae6b1e2a272bb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d5126b34932f48c79817412900c32d36": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 2,
+       "layout": "IPY_MODEL_e170efb34ce6481e81a74b158d8a69c1",
+       "style": "IPY_MODEL_d3a746d58aab4344b4922a755859aa29"
+      }
+     },
+     "d526813200f84bcc88ad0a9167714604": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d53e19a5217b4bfe99cf33628d833c2b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 0,
+       "layout": "IPY_MODEL_c04d4b179ab041e491bbafdbe2cb2953",
+       "style": "IPY_MODEL_5fe2d3701e18438ab6d7abce1175653b"
+      }
+     },
+     "d5405eaafbf0487698edfd7ca5a998c9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d55bf92ebbd543458fb328aa330b09ac": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_666b12f62b9c49519b21a8beef8a8740",
+        "IPY_MODEL_e5a3f94fe3a4479ea556534a2d4ab250"
+       ],
+       "layout": "IPY_MODEL_e044c0c1a67b44c29f31e0eb2a76f0fa"
+      }
+     },
+     "d56a7c695a76439ea6156aa0e5a7aa00": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d1d217e798db4a11bb3dbf83ab291fa0",
+       "style": "IPY_MODEL_2ed83a06fc4c40c1936f49365ac7cd99",
+       "value": "Outer Zone Plate width dr:196 nm"
+      }
+     },
+     "d5d4aa350e9d4b639ee48b6659f85193": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_535dcc3b907f414985f74e5bd132cb36",
+       "style": "IPY_MODEL_fb5521a8d977436dbf0e1b5332c1f8bf",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>42.05</td>\n      <td>26.19</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>42.05</td>\n      <td>26.19</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>42.05</td>\n      <td>26.19</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "d5dfc963b77b4258bcba769a7c582437": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_abad228b5d8647febd49bf15689e76fe",
+       "max": 2000,
+       "style": "IPY_MODEL_25d1646dbbfc4f7e9be7c8b1f9fe9830",
+       "value": 100
+      }
+     },
+     "d62221e013d94b828fd8ff3fceae368e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_98e0fe56f7b84ca8835d27ee725db818",
+       "style": "IPY_MODEL_55821564bc5f49a4918818eef5273625",
+       "value": "Energy range (eV):"
+      }
+     },
+     "d64e8b04f1c744d690bdd0996e1746f2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "d68592599611449abbde95aa501f7f83": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d698f7d237114b72a9ecd655d79e23bf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e7f647e9b9d74b179ae92bbb47605c1e",
+        "IPY_MODEL_fe49601ea4d14dd9aa543f5e08e823b5"
+       ],
+       "layout": "IPY_MODEL_5cf8f47c841c4a7d90d3603c3ed165ff"
+      }
+     },
+     "d6c96a0acede4bc0aaf75b83c838f2f7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d6edd628d87b4426a5c8d875adb0fb5e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d70fc0960425408a94f27cb1f32e6170": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_8d65ea9cb16b4e97ab91ed739a8521d5",
+        "IPY_MODEL_6abf7cfe5d2247ac98f70d36701923cc"
+       ],
+       "layout": "IPY_MODEL_56b8130e1c424ba681ff47a5de12e70d"
+      }
+     },
+     "d72fb88a7cd241f58ac283636cdbc1fa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_6b24bcf61ead40d8a567cef11c2f34c6",
+        "IPY_MODEL_c2381f2f7bbf4a639dc1c9bb9f90499c",
+        "IPY_MODEL_0a609402842a4db4af8710d852e045e4",
+        "IPY_MODEL_471b8f5ca66c44ebbb4645b9b6c4388e"
+       ],
+       "layout": "IPY_MODEL_a8776e09dec349cd9d8fbbbbefe7dbd0"
+      }
+     },
+     "d736231aab14452da8f4fb3b2a0642f9": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d7aaab2149fa469d9ae16bc5bdb12256": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_71eedba94d86439ea74e125f3d2f8ed9",
+       "style": "IPY_MODEL_9434cd273da64991987f8cd5dfc7c30a",
+       "value": "Low energy"
+      }
+     },
+     "d7d2983b19364409a1a2c9e0be24a2b8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d7f669a2523e449b97cb7b6c70880e29": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d81ce84dd3474572b2d44c7349b62772": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d86d00de404d42e9a120c206792e5f7f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d8ae241349b6408b8c86a17a2a8613d8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d8cde1c7892f49c3acdfc05a68084066": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_5a865c3ada36478ab3d1b9bdbb7f6c3a",
+       "style": "IPY_MODEL_c9ba50dac1094b91b0a0f30471a2a9fa",
+       "value": "Outer Zone Plate width dr:134 nm"
+      }
+     },
+     "d8d91e92e2a94df9bbe15d64699b45cc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_28b1ecd5c9d343978328d54a708440bb",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_62feccdc7361441687c6fe70624a5586"
+      }
+     },
+     "d91c57445d4043cc85440265e42f49fe": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "d96c89470f324a8281107afae1d59d6e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d98582c5009a4fa48737390ea3a51ca0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "d9d018cf0f634b90a49608d8b9a615f1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "da3fad48dc904984a1a35c5d98d9432f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_72902245503945a29a25782307bd450c"
+       ],
+       "layout": "IPY_MODEL_c918039080114470a82a7a0c29501e32"
+      }
+     },
+     "da62150d89194ba5936f99d45791e2be": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_a020e83ed3234d238c4cc736e482ae98",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_eeec9cc9cc3c4f0dbf2d1ce8adc2addb",
+       "value": 20
+      }
+     },
+     "da6d2abc12234b7e90552aeb6fa9f26a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "da8069815053446fba0b4e9a04b4749f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "db012a8ead0d4c26966c6d7cc59a85de": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "db11b7b09f99411db03957767ff35c84": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_f1168b826a5b41a7a1a6d5ab7e8ee3b1",
+        "IPY_MODEL_73040998bf0e4117980b8b4eb9276934",
+        "IPY_MODEL_3e93da9fb03541d1acaa19bb249cd77d"
+       ],
+       "layout": "IPY_MODEL_c41cd24bb78e4f89a1afbac92dd16a06"
+      }
+     },
+     "db1206a4284e4733ae23bcf98dc9ca64": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7d7753629e154f0fa7c020ff5938aafd",
+        "IPY_MODEL_788f3c927f6d4695b4c9c6d3fa2ded18",
+        "IPY_MODEL_1af068565c044c04bd4fc8d22060a432"
+       ],
+       "layout": "IPY_MODEL_53b73e9192c4448ab2f12b5c146797ab"
+      }
+     },
+     "db1873d9e54542aabb262bbb90a36f4c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "db268d2e3ef747aab857f5d8801f23c5": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "db6d98c2cdf34132a15b0f3a448f1c2b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 0,
+       "layout": "IPY_MODEL_c0b670d4106d4b369f4040b6e330ca92",
+       "style": "IPY_MODEL_5283be70ed57424882ea78626a94ab56"
+      }
+     },
+     "db89a93a3b584e228dbb8dd3b067e4cd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Beam splitting Off axis Zone plate"
+       },
+       "children": [
+        "IPY_MODEL_5051358690854107a146ba28395430be"
+       ],
+       "layout": "IPY_MODEL_aa141600d4fe4ee8a1ae32d59a7577f4"
+      }
+     },
+     "dba5b139cc844e8dafc73d50efb73532": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_ee9d87946c574bff8226abdd5e71e888",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_89e39ae665d74aa7a571acf761cae5fe",
+       "value": 785
+      }
+     },
+     "dbaaa0e991d04123b83ca91aaf9fc749": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dbaae4f96acc4c09b31bb05c61605ac0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Substrate thickness (um):",
+       "layout": "IPY_MODEL_aec37f0e80dd4ba4ae9a58673526a561",
+       "max": 1000,
+       "min": 1,
+       "step": 1,
+       "style": "IPY_MODEL_dd6e1e3c95f14e4192b0c2c13e8d42b8",
+       "value": 381
+      }
+     },
+     "dbe821801fd44b539e7cdb82c9ced984": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "dbe833114d8249a5a8f96eb57c6054e1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dbe9bae4a4204cf49d016baf0f2b24e3": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dcdabe8a43ce4aed914770989edb66b4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dce85ec4beee4ea38cbbdd8b9ed05401": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_79c760cd3e9e45419df6a7864a44377b",
+        "IPY_MODEL_34b4f28941aa4a5999a50ba252e4fbfb"
+       ],
+       "layout": "IPY_MODEL_3701c608876248d883d7245627cb438d"
+      }
+     },
+     "dcebb47e02a247ec87ec753dbeef0d9e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dcfbcaf2d22c4b279cafb1149bec9222": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "dd3b0f69198749eaa7d18f18a0e58e5b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dd6e1e3c95f14e4192b0c2c13e8d42b8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "dd70e7dbb8cf428184daf1e1dac3460f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_f199d8f768bb46b29ab60b6b4231e0ab"
+       ],
+       "layout": "IPY_MODEL_e94cb5b6dc1349f59cb84dffd7783578"
+      }
+     },
+     "ddbeca41af4143d3819506ddfd3b3a1f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ddcf1f8646584742bba76ff4104132b8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "de38aa00aaac4830b1740dd52ee95d31": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "dea40f7fbbfa43559c6c9f57eb6d6ae0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dee156cecead4f6eb09a22e52c9bdc7f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "dee91559234246268b9a0cff27b0653e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "def0f407961045db987cdbc95973711c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_727d014286f44784abc387b38498abd3"
+       ],
+       "layout": "IPY_MODEL_9da0b3bc25ea4b4d8f2a31aaee1b032b"
+      }
+     },
+     "df68991c32b84dceae169ea4d8ebcb4d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_b4ed6577720f42469da0c932148a2687"
+       ],
+       "layout": "IPY_MODEL_cb94b7acff5a4310b2c1c11c8010f9ad"
+      }
+     },
+     "dfab25c7da39473ca5468dded38b6b0d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_e0442cd6a6364f598cbda4d05aa5caf4",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_4af3c147f6d04f33b23ef636174bb400",
+       "value": 20
+      }
+     },
+     "dfaf17f099664f8c9c339ed45e056a41": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d53e19a5217b4bfe99cf33628d833c2b",
+        "IPY_MODEL_fc184f8b718b4239b84d18d78ceacc17",
+        "IPY_MODEL_be78b926e0ad495aae07753eaafb2854",
+        "IPY_MODEL_8eb26b89f2aa44be9dc0a3a780ead1c8",
+        "IPY_MODEL_c7603eb869fa4a2c9efd95288d25bcf6"
+       ],
+       "layout": "IPY_MODEL_c2ebfff042264268a5b0cf6ad25b1bee"
+      }
+     },
+     "dfdbe7a10cea4dc5afc5579d0f346382": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "dffb7d7e90f841c2a3c2357cdef47fcb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e03d1f77227844929fd321524dc728d5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_3d2d94092edb4c429ef31a5d771beeff",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_9eeed48e563a4f40a05034fea4e9e871"
+      }
+     },
+     "e0442cd6a6364f598cbda4d05aa5caf4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e044c0c1a67b44c29f31e0eb2a76f0fa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e09941d4440f4f87afeeec0ed24b5fa1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_9cbe2524cb2a439eada7911ec3c8c6f1",
+       "style": "IPY_MODEL_c1eb55fd7bf4486ea63005c687c3705f",
+       "value": "Low energy"
+      }
+     },
+     "e0ab62a1be71457daeaf6363bdd5444b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_db1873d9e54542aabb262bbb90a36f4c",
+       "style": "IPY_MODEL_bf09be76fafb43c7a024f24fe05669fb",
+       "value": "dr"
+      }
+     },
+     "e0ef8d0fb97242a2aa99f2ce9beae92a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e0f69e62bd6c4e60a45d4083ae051850": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_ca25df6722664b68ac1e4133b621efd2",
+       "style": "IPY_MODEL_126d79c2846746c0af3c3934ba49adca",
+       "value": "Detector (m), "
+      }
+     },
+     "e118e02a5c684e989e4b4979ceefc3aa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_4f113ff10b384744a4655290e4c471b0",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_409d65a3770c47b896ec57b9f05ee24f"
+      }
+     },
+     "e11bf1193eaf4008806f78aefde6d8e1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_84a85a98b2a14e5fae0cab05de7c85b4",
+        "IPY_MODEL_08e0876bd23b4c459cf49ea86c1b340b",
+        "IPY_MODEL_d22c0947ffb8453cbcd9f0bc3c708fd6"
+       ],
+       "layout": "IPY_MODEL_59fd145400d147c39789f66ec644c3f1"
+      }
+     },
+     "e124cb67ebfb477aa31db87fba042d1b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "e127e8666721431a919ee93db0c28b96": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e1565be99ec74a97b49bda13606b3e6c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_0c8a4049c51c49a5bede923813d4db64",
+       "style": "IPY_MODEL_ff4f504201d84d7da355cc5d8b14b39a",
+       "value": "Outer Zone Plate width dr:229 nm"
+      }
+     },
+     "e170efb34ce6481e81a74b158d8a69c1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e1840e790c3149489f69970b0641668c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e22117bc643545a4a1303026b436ba64": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_942b5015097a42a38334dc0715155eba",
+        "IPY_MODEL_325c7c54cab149d6b74e21750ae4e69b",
+        "IPY_MODEL_f601595d2d4a4a20b8b39db2d56661bf",
+        "IPY_MODEL_c5526b3489ba44b290133933978cbb5f"
+       ],
+       "layout": "IPY_MODEL_97b2b15d400c4362915736e5cbc0db58"
+      }
+     },
+     "e23b3fc672ed408a9284d8d60b2da33b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e27fc9a951f34681a0064f534a02f60f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_92b5f74ed1ef4252834272a38b6cca2e",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_d68592599611449abbde95aa501f7f83",
+       "value": 0.5
+      }
+     },
+     "e2c6e1c1ec4e499fb2a06d7d1d7ddd82": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_9120f744ae4b4f588ffcdc8e73f9cff2",
+        "IPY_MODEL_bd477eeb8df54cea9843698c8ebde1f7",
+        "IPY_MODEL_fda8c9ae38b74003887db4ec395f1d62"
+       ],
+       "layout": "IPY_MODEL_5fd1b4729e934f3796ec6d998a499727"
+      }
+     },
+     "e2d086698cd54d0893b4b1c04df83e9b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "e2e6a7ac34c84e378d4e5e310ed551d7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e2f05fa1f3f142e48d9ad865cc923222": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "e33d3f49bbdc44de9eae1c3bad941f8e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_5685bd0d457647a68c94384887a8fc6b",
+        "IPY_MODEL_e7e44de9f2d34bc3bcf9eb045e4fa582"
+       ],
+       "layout": "IPY_MODEL_ee93d36ae09845a680524434d5d644fc"
+      }
+     },
+     "e3877c40c3a046889ba89c9de0a8805b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "e390ca3000884f7a9e2dbb641ca12f8a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_1e4b992fe8934422af4d9458c3f3af2d",
+        "IPY_MODEL_b604fb35dfce46ec80da3cdc19e48a1a",
+        "IPY_MODEL_b706d1e6515b4bc9be4c63b90393c67b",
+        "IPY_MODEL_9f0d55bfddba4a7eac31fde02f4b0387"
+       ],
+       "layout": "IPY_MODEL_db012a8ead0d4c26966c6d7cc59a85de"
+      }
+     },
+     "e3d4f3123c2a416db640a6221290f7c9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_268971d7654f44499eb003b127592ea8",
+       "style": "IPY_MODEL_ffa789d47ba64884981a8f6a5d5d6394",
+       "value": "dr"
+      }
+     },
+     "e3dc087266454e8b9723bb5563c135b0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_2646552d39fd4cac95dbc732e667100e",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_c4aaefa9232240ffb649712fedcbcc4a",
+       "value": 860
+      }
+     },
+     "e3dda80fff6141479947a01382a34e81": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e3f12e1caf6d4c6980e901bbe45e9540": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_d4efde5a30664154ba4746f08f977f73",
+       "style": "IPY_MODEL_b4b9d7e6b1b54d338bde03edd0551439",
+       "value": "High energy"
+      }
+     },
+     "e42333bde0f7486e9316ebeeca5a5a43": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Off axis (mm):",
+       "layout": "IPY_MODEL_202b214623454008b5ea88e8132928fd",
+       "max": 2,
+       "step": 0.05,
+       "style": "IPY_MODEL_e2d086698cd54d0893b4b1c04df83e9b",
+       "value": 0.75
+      }
+     },
+     "e42389d1f14e4276ab0e8f64ac5c6e5d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_35c13a9cc1204589aa0dc41ad59ee98e",
+        "IPY_MODEL_c9bede7beda24d8ea990db7ea56829b8",
+        "IPY_MODEL_c52398c288cb472383815e432524af31",
+        "IPY_MODEL_92bc3043537949a3ad3c1732ba266e23",
+        "IPY_MODEL_21679e5862e5452e93a9b0d0d846016d"
+       ],
+       "layout": "IPY_MODEL_b596c25ea08a48b690680b4f389c33ad"
+      }
+     },
+     "e43e9692077e4705802e349f0df8d521": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_ee7641dd2be8469bb5a1868d43fcdbd0",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_37884ab275a94c9eb9be2b0ce73ef44a"
+      }
+     },
+     "e46b1e8521cc4bb384db85eaf72a4638": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "e473735c87b246349549daeb20a0fffb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "e4bd75d014d04d4db00abd9de47414bb": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e4d5ec50a67547de8a6a57e0d0a796d2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e4faa1e047ba478caa1b0bbcd5a7aab9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_27c53dfedd77419dab08fe8734998263",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_50514dde8aba4ecbb2c713993692efe1",
+       "value": 840
+      }
+     },
+     "e58d9d8e0961484abb57bea4aa9dd008": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "e5a3f94fe3a4479ea556534a2d4ab250": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_64bea122107d4c9187a468d4be19b5bf",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_b76e283a035c453980b7dcd15d734428",
+       "value": 54.74
+      }
+     },
+     "e5a6e38fe1a844a987871690750d05e4": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e5fd84e35c5743ac965957c3c834cf89": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "e6430fcb123d484aa2ce76c6759d1910": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_33cb170ad6604c058fe0236763e1aa45",
+        "IPY_MODEL_e96a8fbd8f2a415f82bb21258c428954"
+       ],
+       "layout": "IPY_MODEL_861ee2e9f1cb497982405db34d92a6a2"
+      }
+     },
+     "e643bc9e5a6341908964cdfcb42846be": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e6595e40cc0c49a5a0c982d6d4d2bfbd": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_2c76e150d675492c88e689124921a889",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_ce985fcbb8f44247824bd1f5135b0edb",
+       "value": 5200
+      }
+     },
+     "e660024ad715409792f8aa97d62557bf": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e666f34b46824295b31b6d2ba347e7c8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e681905bd366444e81fe76a65cfeb16d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e694b770d5f04a4fbef6ccb8f54a5d59": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_1ac716938c3640bbb0e64744fe7cc1bf"
+       ],
+       "layout": "IPY_MODEL_25938042af0b4ea78682a6679e563878"
+      }
+     },
+     "e6a951183026440a823d0ae2332f785e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e6cd357762054ee89f7031294dc427fc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e6d22d1e386d4b40a1cd23f52fc8d74f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_54f2730a77494764a5e2cbf3cdb65b07",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_f04c92a7244d46b1b1eb9b9f43ad15fb",
+       "value": 695
+      }
+     },
+     "e7299e0190d8436f9c40153affaa19e8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample normal (deg):",
+       "layout": "IPY_MODEL_8902e27e9cae4c10bf841f1ce72a55e4",
+       "max": 90,
+       "step": 1,
+       "style": "IPY_MODEL_8b06d698018e4a469bb214493b9739bd"
+      }
+     },
+     "e73adf3b25c1435a8597a0abe201b4e8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e77b41e1cba146c8b1ccffe0ec120faa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "IHF width (um):",
+       "layout": "IPY_MODEL_935dda90de3d46b5b957de733877bc70",
+       "max": 2000,
+       "style": "IPY_MODEL_a9a1b83e6a134ceabcaf3f240fdc9f0e",
+       "value": 200
+      }
+     },
+     "e7a0cc9f1f634b36b305561a1b61f8d1": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e7cbddb1916a4f0bba8eae52d08852d4": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_722a7094f32c411fa3635a42c5fbbfe4",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_28c56a51b5264e41b213faefa80adf22",
+       "value": 0.8
+      }
+     },
+     "e7d010435f874558aec715a28db5bf22": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e7dc83684da1459b9cb661385ae9aa7a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "e7e44de9f2d34bc3bcf9eb045e4fa582": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_048d5ddda0f24907b9e4f68d685f1d6c",
+       "style": "IPY_MODEL_e124cb67ebfb477aa31db87fba042d1b",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>24.37</td>\n      <td>8.52</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>24.37</td>\n      <td>8.52</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>24.37</td>\n      <td>8.52</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "e7f647e9b9d74b179ae92bbb47605c1e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_40b6f10d5f604a16878f6b8b79fd8ff6",
+        "IPY_MODEL_4c7f7ee5b8aa41998f32801d2fbdf9d2"
+       ],
+       "layout": "IPY_MODEL_bbccb8f516834074a8b76b8f0358fc2f"
+      }
+     },
+     "e814e4553d1547899188d4526ac33689": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_2ecc37538cd846ce805cba3350512b3c",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_9bac66ae80ee4b6e9d153897e930fbee",
+       "value": 5.74
+      }
+     },
+     "e8317e5543d14b368137ad16eba99cef": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "e8324bee2aac45b18b2c6c2e57d4b959": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_2d9add00a24f446788c766d84a2d3147",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_b75d65297c80448cbfa29db04863b15e"
+      }
+     },
+     "e83e0fb377b0464a929a773e6f5e9729": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e83e91565bbc44df9b373b71e82eb134": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e84dc39db22648f38121d8f8d38ca114": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e89b796452254e308b5637a883bbdd83": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_d193618a4eae4e27b83d95cffa31b99d"
+       ],
+       "layout": "IPY_MODEL_9c650ee21c7d4b45932f9894243e5938"
+      }
+     },
+     "e8abfceef65b49c4a5f5e406f240b18c": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e8b41cd74e0143818cf8bad21a6f1c04": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e8f36ef7fa984dd494fe3bb74f9d0cc6": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e902808a56ca4508b58934d6762b8805": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d2288afa81494239ac61b002068ebdf8",
+        "IPY_MODEL_44e0dde6a2ec459d8eee89f8207e48cd",
+        "IPY_MODEL_d46ad83e5f22497587f9ee270ee883c0",
+        "IPY_MODEL_4f3a9b5119d444c2912382f6a62af6c0",
+        "IPY_MODEL_20eeb642eb9c4fbb9ee3b6a232e949fe"
+       ],
+       "layout": "IPY_MODEL_b9f96628b8894cdfb106bc996bd8e20f"
+      }
+     },
+     "e93c6e5226004adcb4bae211ab867d36": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Y:",
+       "layout": "IPY_MODEL_d1ac99ee0e734db987f1f7b2a6de70d1",
+       "max": 50,
+       "min": -50,
+       "step": 0.5,
+       "style": "IPY_MODEL_8d66008961274e2fbe0099e01f8be153"
+      }
+     },
+     "e93e0d924f884becb6b3b01e4dc926c6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_6bb9771a31f443bda50f8853d604ab17",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_ba6788e568ef427a9eac817d86fcd865",
+       "value": 5.05
+      }
+     },
+     "e94cb5b6dc1349f59cb84dffd7783578": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e9597b8cb1484592ad1f8956714f6c41": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_3ef43d869aef4d028b35f93bab024db1",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_20978716cd7b48eca694bfbf7283cee7",
+       "value": 54.74
+      }
+     },
+     "e95d76ccaa05407b8d28297f33cae553": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e96a8fbd8f2a415f82bb21258c428954": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_85dfb6baeda141849c7f7a44e1abea2f",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_2b2d14bc75714702a05b8bafcd3949ed",
+       "value": 54.74
+      }
+     },
+     "e97ac5eab99b4eee81b932c24b30b6e2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "e98fbbae13214f0bb5619ac287f91467": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e993a1bbf1a4429d8f55520dc5cb9047": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "e9d4d98c9791456abcbcadd777d2bb8a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ea7671e4024e45c88c1d76effbd584ce": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ea9bf02174a544b1b15387b8d352a0b5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "eab4eae027ca409e9182b1a10c9ed9cc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_1f6f3b84cc064d2c9787ea78c362ca71",
+        "IPY_MODEL_0093fc9dafb24620b5ed997430716841",
+        "IPY_MODEL_2783bc6d95034b34ab07b4981d1ee08a"
+       ],
+       "layout": "IPY_MODEL_00b41c0291014bbb9030a0a0688483c7"
+      }
+     },
+     "eac2418d91a241da94d16bf49262e97b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ead591fab80f47418041d3a04a091d81": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "eb0c14c717f1403d828b152666086d06": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_2748d81534a24461b88a3d7dcbf8a5b9",
+        "IPY_MODEL_d8cde1c7892f49c3acdfc05a68084066"
+       ],
+       "layout": "IPY_MODEL_a62a7401c6264aa799797e16778ef7c6"
+      }
+     },
+     "eb18e4385afe4d82ae921552d66cc9ff": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "X:",
+       "layout": "IPY_MODEL_05c5b06f970a4145b57bfc5ae6311a91",
+       "max": 10,
+       "min": -10,
+       "step": 0.01,
+       "style": "IPY_MODEL_bec4e03e57f948e1a2dceb2b8da4095a"
+      }
+     },
+     "eb2ea7e802d74089a3dfb6519117659e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "eb301f908a5445088919db027b4f3a41": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "eb53a5b3370644d2a8558b7080aecf71": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "eb78087670cc4f7fbc559cc6b9cd6249": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "eb881a6853a5437d9e7cc0181d929383": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ebb12ea3d5914b4da4bc53383bf17f0e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ebc67a604b2d48d78dd9ed0b8373369a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ec04144c2a38463e924cfad8942f1c1f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ec51ee6161bf462aa45f8a73b3db37ca": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ec6c07e0cb8f43c18b646fff0b5c1852": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ec6fa19a06d84f4c9c9a72e833dabef0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_e118e02a5c684e989e4b4979ceefc3aa",
+        "IPY_MODEL_e9597b8cb1484592ad1f8956714f6c41"
+       ],
+       "layout": "IPY_MODEL_e127e8666721431a919ee93db0c28b96"
+      }
+     },
+     "ec707a66803e41b99934c9d1017f0a04": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Z:",
+       "layout": "IPY_MODEL_d96c89470f324a8281107afae1d59d6e",
+       "max": 5800,
+       "min": 1000,
+       "step": 1,
+       "style": "IPY_MODEL_b0b2797333a94f3dba2aaeabe9faed8a",
+       "value": 2000
+      }
+     },
+     "ec72161b1c2041c4aabb4a6f65ae4936": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ecbe3860080e47c091610ac1355bf54e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ecd9a8ef26964134bd8956f10a30b993": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_ece3d3fffcfd40e482af3a2293e88b19",
+       "style": "IPY_MODEL_53c81ee3f9cd4be09dfd33f483e9a1bf",
+       "value": "Grating Pitch:510 nm"
+      }
+     },
+     "ece3d3fffcfd40e482af3a2293e88b19": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ed35289fb57a4efaba023c9d7b980952": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Etch angle from surface (deg):",
+       "layout": "IPY_MODEL_d333d53beb3e42028afd8c0916c4d2da",
+       "max": 90,
+       "step": 0.01,
+       "style": "IPY_MODEL_8d22a9f571d948d8a2b7aac01e742ea6",
+       "value": 54.74
+      }
+     },
+     "ed8fece8d8a142a1a42db20c0d031a52": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_157b981741d641349c52bd34c286d70e",
+       "style": "IPY_MODEL_3e2ffef19f3846c79e1a65db08b680b1",
+       "value": "Membrane (mm), "
+      }
+     },
+     "edd29724a3794a0d887eadd4c2885bbc": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ede49980abdb49778fec12e5ecd42f02": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_c2b667c0991b451aa64bb934a925a494"
+       ],
+       "layout": "IPY_MODEL_791f64a9283344a2acde5afe4e5575a7"
+      }
+     },
+     "ee3acab9503940038e15b45cc76fcaa9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ee3f3e1ac7cb4336abc378dd6cb0889b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_6558bd02d8ce458c87aa25c4501c9249",
+        "IPY_MODEL_c0abe011d4bb4251b26a543c7fc6c33e"
+       ],
+       "layout": "IPY_MODEL_54c7ae13851c43509acb9c19fc6fe804"
+      }
+     },
+     "ee70d7eca96a47879a6b8c1491038b2f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ee74bb2175b9495ba5f35c48e31fa1ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ee7641dd2be8469bb5a1868d43fcdbd0": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ee86cffc38cf47908da4d9b6beb69fb7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "layout": "IPY_MODEL_5c79458e71b94c37a8d9a320d450b21a",
+       "max": 1,
+       "step": null,
+       "style": "IPY_MODEL_7b802f9157d34c07a9c2685e4b25932c",
+       "value": 0.25
+      }
+     },
+     "ee93d36ae09845a680524434d5d644fc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ee9d87946c574bff8226abdd5e71e888": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "eeec9cc9cc3c4f0dbf2d1ce8adc2addb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ef522a82bbc945c1817c88ebef2c0fea": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_8ce7dbfb03054337b7c6552292060295",
+        "IPY_MODEL_aafc6de014a54c29a7099996cc4f6eab",
+        "IPY_MODEL_f2926d12cc5744579cad910574a2fa53"
+       ],
+       "layout": "IPY_MODEL_066d62f55b04454eac0b187a65854580"
+      }
+     },
+     "ef5eb0b5118749baa38a9666c0bce198": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Spot sizes"
+       },
+       "children": [
+        "IPY_MODEL_5c46e769d88e408fae21b2160aefd4e2"
+       ],
+       "layout": "IPY_MODEL_135c90eb3f4941918158daaff3b875c5"
+      }
+     },
+     "ef613fbf0efa40eda267aa3cf637595d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ef62a3fee1f04835acc22025b15ba38a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f04c92a7244d46b1b1eb9b9f43ad15fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f05bd78e18c142d3a3d726ca1fbce319": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_8999985f4add4e2ebcd5df48018a045a",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_20f55321e5ca432a952690a617a7f48a",
+       "value": 880
+      }
+     },
+     "f068d30509d74330baf7f754fc97d4ef": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f0a7ba2d57fc485ea5571f31add7bb2a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f1168b826a5b41a7a1a6d5ab7e8ee3b1": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_92698ad212164a5ea9a9adfbed290bae",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_2364bded8a0144d9a14726a521ad6a46",
+       "value": 927
+      }
+     },
+     "f1329b2828074aed81530ab8cd70b8c3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_dbe833114d8249a5a8f96eb57c6054e1",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_9d62289c9b53493f90bd841bbb547409",
+       "value": 880
+      }
+     },
+     "f199d8f768bb46b29ab60b6b4231e0ab": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_11cec4e93da2496eb73cb28acd9370b0"
+       ],
+       "layout": "IPY_MODEL_c7fdb091911a46fa858b84461c3af99f"
+      }
+     },
+     "f207fd0ef73b4501a7320341bf77aa09": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f20d3d55c68f4e879d410053d1351338": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f232e3aa48844ebaa48b57f9a152a775": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f23fde77f4f04750a6eaa2c3c8d6b09f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f2926d12cc5744579cad910574a2fa53": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Width:",
+       "layout": "IPY_MODEL_5df1008168204fb797b310d924a20bf3",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_e2f05fa1f3f142e48d9ad865cc923222",
+       "value": 0.8
+      }
+     },
+     "f292f72ff6584e15a449534631ab6b39": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f2afa2fc841a4e768453c3b2871c8e67": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f2df510581a04eb3ae164abe9fdc08f6": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_8e7669b84cd940d4a84df278e4b168e0"
+       ],
+       "layout": "IPY_MODEL_af8a062f54e14064b57a85cdb809bf91"
+      }
+     },
+     "f3044b44da2f49ea95da6c7b8a5de1aa": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f36b683997af41a28dc95a69dd478835": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "width:",
+       "layout": "IPY_MODEL_b83fe8cf5aa443b8b21161e94bd2ddcd",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_b5bef905571f4c87b1c035c00162ff80",
+       "value": 0.3
+      }
+     },
+     "f3a03f072757430ca71e11dc80a6f66f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_054d734918144b098782d1ba69e18fab",
+        "IPY_MODEL_d3dbd40533d9441182e4fb8f40ee3a3f"
+       ],
+       "layout": "IPY_MODEL_9f582d4617e442ca86a3e90f1b1ee9b2"
+      }
+     },
+     "f3b4041068e1440fbd110ad0b5f96bae": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_6d6e6bfb8fc848d2aa064d3b1054a5c8",
+        "IPY_MODEL_bfee23e97e8b4c36928a6c0f1795ec58",
+        "IPY_MODEL_6b357855a7e44bb29aff4749bb577361"
+       ],
+       "layout": "IPY_MODEL_970938a67fb349a2b86151bd2f9710fc"
+      }
+     },
+     "f3daef71794d4274bd8b7231c8f3c1f5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f44e688c29df43c9af3d98d6cab408d8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f455b32314ec4e729fc6ac935c7487f8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f541f7680bb041bd8cf7cf8cc51ffef8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "f5629c3330c0495ea9c3b22b19e09dc2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f56730ab95d94b42a125d1dc0eb3402c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f5780e842e0445698734de1b453cbbbc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f5b25c24f22e46a99f8cccdc3e948c80": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f5d374adfab24c8ea47c197e155d92ce": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f601595d2d4a4a20b8b39db2d56661bf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "VFM focal length (m):",
+       "layout": "IPY_MODEL_8247e2dd643441cab2297b33e2088f19",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_905bc610ba044696aae64f4ebb41a148",
+       "value": 5.05
+      }
+     },
+     "f610e8f7e5ca40fe8263f5d3b8727672": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f640d044144f4b00b986c454324d8dc7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_a814ad01f31d46cc8bb06b3447141c78",
+        "IPY_MODEL_ab82f774b5c34905a3cb67d383eb9d39"
+       ],
+       "layout": "IPY_MODEL_f44e688c29df43c9af3d98d6cab408d8"
+      }
+     },
+     "f65a829e0964430d84551dd7d860878f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f68c3c250e6b42f8bef66cccc1c96ff2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f6bddb15323c48059360da2cae00356e": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f6cbf548d16b47faa2683cf7fd138552": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "ButtonStyleModel",
+      "state": {}
+     },
+     "f6f98ee9aa7046968618fc48ab80ce88": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f6fe8a1dbaf24ebe8d5a0df511ac4544": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "f74ec4d8b61c41a3965ebc043546162f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f7a3a87664464c839fa1f6ecb7985e40": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "f818a612b38e4992acd0e0fbd454e7a8": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f830b02748b145d098cdb1beea5ee68f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f8c0214089024038b3ee6136ff7acdab": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f8cf68654b0f43e3b61993179ea592cf": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f8e24dbbab444b8393c56854d57b2fcd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f8fbc130fe844bf296cf579a9ad0345e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Sample"
+       },
+       "children": [
+        "IPY_MODEL_1182c6c4fdd544669bec5bea53b46efb"
+       ],
+       "layout": "IPY_MODEL_e1840e790c3149489f69970b0641668c"
+      }
+     },
+     "f90fcd7851ac4c57a78b29755ae3ec5c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_310b69aad5204c178025fef4f646f9c1",
+        "IPY_MODEL_a25e05026346492583b8ee82c757ef2d",
+        "IPY_MODEL_9769f36244b94b6589fef9bf5801df7f",
+        "IPY_MODEL_3f6a3f5ca4444ddc94d85df3b91797c2",
+        "IPY_MODEL_ba13a53384a4449ea662246fb1e957e0",
+        "IPY_MODEL_bc369aaa87624c86a5be1596dbc45a7d"
+       ],
+       "layout": "IPY_MODEL_0e33f048d2a84da8abaf0e7eb6439b12"
+      }
+     },
+     "f917cad1c3ce4d17bbbb59a75f6f4444": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f93c3c11978f44be86ae3dcd09393f2b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_d7aaab2149fa469d9ae16bc5bdb12256",
+        "IPY_MODEL_b51a3288e7484f64897d92fd026111d9"
+       ],
+       "layout": "IPY_MODEL_79b2c3ad60e049e3b9a13cea46b533de"
+      }
+     },
+     "f93f5cfc28cd4bb28e070630c505e0f9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "f96a518d6b054ce1a21baffdf4f3efb5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_1dd13844fe5a44e8ba058b8ceef2bb96",
+        "IPY_MODEL_fe5b80cb3858401194ddcab8ab757dae"
+       ],
+       "layout": "IPY_MODEL_0d185da3f13241719f1f5ac4d3a7ed4c"
+      }
+     },
+     "f99a4e28327d459698f5b3178865a17b": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f9a7a061d94547ce8ef0cd6d211950a5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "f9ab8eed9a804fd8b182dd53202bacdd": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f9c79e0b4c27466498abd941f9289bde": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "f9ec0adbc9924a44b7f8820c1b43a4f7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Design:",
+       "layout": "IPY_MODEL_9e8eaa807c1c40b39178004024fa644b",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_ca312c3a313c40deaac941327537f221",
+       "value": 860
+      }
+     },
+     "f9f70729bbfb41a0acf81cb9f5220c8d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "fa20a1720bfc47868b136c41382d7326": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "fa5401be67da47a0811bd495b4a94274": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "fa5704aadfa545ab8beec76fadeaa2b7": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "fa7aeee02406408581688e0626955748": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "fa934789640c4bc198e4e47e01446e76": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "faaf261b8f6b4bf4a7142583edcc9209": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "fb3624dd2351487495fc8e9f484d0cd2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "LabelModel",
+      "state": {
+       "layout": "IPY_MODEL_da6d2abc12234b7e90552aeb6fa9f26a",
+       "style": "IPY_MODEL_a14f976ea63b4209b4008a991724d12c",
+       "value": "Sample Offset (mm), "
+      }
+     },
+     "fb5521a8d977436dbf0e1b5332c1f8bf": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "fb5daf42b94f479c8c79b17393cab5c0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_1cdf4276851e41a9a78b09789bfbfd0f",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_80d31b0ede6d41c6bb770c2bc92538a6",
+       "value": 5.74
+      }
+     },
+     "fb5dda5654534c08bcea2c2ad1765f6e": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Height:",
+       "layout": "IPY_MODEL_9d7f6adcdad64a1e836dd9bb41562a80",
+       "max": 3,
+       "min": 0.1,
+       "step": 0.05,
+       "style": "IPY_MODEL_6fdb3b4ecfed427c9ba22f8e311a4b91",
+       "value": 1
+      }
+     },
+     "fb7f6fffdebe41bb9e9badde736f894a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_18240c25d3f14a17aaad06f9d460f6ec",
+        "IPY_MODEL_54507b90e7f74f5a98fe630354a28d73"
+       ],
+       "layout": "IPY_MODEL_d10140f801634658bec84de787485a43"
+      }
+     },
+     "fb95713181f647028fbc62869f688fc8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "fbbb036dc1944c2e9684617d704be335": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Exit Slit (um):",
+       "layout": "IPY_MODEL_91cda04e516d4033918d49d16c1e96ff",
+       "max": 2000,
+       "style": "IPY_MODEL_a3ae369bc64441c581093cd89da7b2d7",
+       "value": 100
+      }
+     },
+     "fbf8cae533e44a40927d28f7974ccd92": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_7f2f055efeae4755bf1de6855f722017",
+        "IPY_MODEL_8e0cbd2df9fc4a4fab1ee17f3e71158e",
+        "IPY_MODEL_13fa02dd13fe414383d59972f0a11dd5"
+       ],
+       "layout": "IPY_MODEL_32e7a015da13438b8702082b4bda5c51"
+      }
+     },
+     "fc184f8b718b4239b84d18d78ceacc17": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_f9ec0adbc9924a44b7f8820c1b43a4f7",
+        "IPY_MODEL_656877d49bda4ba7a29883308f5c2563",
+        "IPY_MODEL_4bc14086b6fb466f8782651b71fd5174"
+       ],
+       "layout": "IPY_MODEL_945b5689d4474c59b3384eee98b31439"
+      }
+     },
+     "fc6321dd0cfa43ed904cc7cbdea69707": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "fc6464a0a1d147c9a4ee9417393bf993": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_6188e1a0316643b0a7bee8e26e57c69d",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_365b47fb005d41b3bb3d3fb75c98f50b",
+       "value": 5.74
+      }
+     },
+     "fc660764407441aba08ed71b6a170ad8": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "fc989fdd77cf467a85a089d3e52da129": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Sample Z (mm):",
+       "layout": "IPY_MODEL_7a60daf28c814d18b10571728d358d7b",
+       "max": 180,
+       "min": -10,
+       "style": "IPY_MODEL_5592a96ce0f74d5882b1e3fcabed15fe",
+       "value": 25
+      }
+     },
+     "fd6da5315e774c30918d7409a6e74a2f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_75e6d9db264e40fd9634719932be68e8",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_6e987c0ed71946c787514414636cc342",
+       "value": 840
+      }
+     },
+     "fd7eefe9256342c0a8ab229ac53f2417": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "High:",
+       "layout": "IPY_MODEL_0eb87bc4bbac461293c9159bac33e724",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_fdd146481314417fb9fd45610392e9fb",
+       "value": 555
+      }
+     },
+     "fd8d275160864f46a658f845adfefd8a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "fda8c9ae38b74003887db4ec395f1d62": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "pitch:",
+       "layout": "IPY_MODEL_495064f89bb34bd89215bf023ed706dd",
+       "max": 2,
+       "min": 0.01,
+       "step": 0.01,
+       "style": "IPY_MODEL_bb64ef3939ad4b388c0874bfd3387ab1",
+       "value": 1
+      }
+     },
+     "fdd146481314417fb9fd45610392e9fb": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "fde629f2aeba4ed09ccac8343dd57192": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "HFM focal length (m):",
+       "layout": "IPY_MODEL_7dd280175ee5493aa069ad66e666692d",
+       "max": 10,
+       "step": 0.01,
+       "style": "IPY_MODEL_8870dfc654174bc3b6a98a1f273cb7c7",
+       "value": 5.74
+      }
+     },
+     "fdf3b508f08c487a85f69cb5fb88ebee": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "fe49601ea4d14dd9aa543f5e08e823b5": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_4fe30845102041e1bae362d4159292da",
+        "IPY_MODEL_9cb6ce05bc394512bd8582edf5b990a7"
+       ],
+       "layout": "IPY_MODEL_0b037907096446b8b44335bb8bf6d635"
+      }
+     },
+     "fe5b80cb3858401194ddcab8ab757dae": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_c383b641000f4691a26d648b56304103",
+       "style": "IPY_MODEL_bc1bfc5ccbee43469ae61fd840f0205a",
+       "value": "<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>H (um)</th>\n      <th>V (um)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>F0G-1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G0</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F0G1</th>\n      <td>739.31</td>\n      <td>753.94</td>\n    </tr>\n    <tr>\n      <th>F1G-1</th>\n      <td>88.95</td>\n      <td>103.58</td>\n    </tr>\n    <tr>\n      <th>F1G0</th>\n      <td>88.95</td>\n      <td>103.58</td>\n    </tr>\n    <tr>\n      <th>F1G1</th>\n      <td>88.95</td>\n      <td>103.58</td>\n    </tr>\n  </tbody>\n</table>"
+      }
+     },
+     "fe68f9ae1ff74155bd78d72b615c54e2": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "fe77d08cdaf44e85882cd937fd251232": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "fe9b30da901a4bb2b6aeea7c278070ff": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "feef6eb07064495c8db2d317cf3f2a6c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_373310221a6d44be9e9e8d5405d7b910",
+        "IPY_MODEL_bfcf655aee6741a8a59af78a00494709",
+        "IPY_MODEL_fd7eefe9256342c0a8ab229ac53f2417"
+       ],
+       "layout": "IPY_MODEL_633efedd701147da9101660090322ff1"
+      }
+     },
+     "fef013802aef444fb8b20a4c71bd482c": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedFloatTextModel",
+      "state": {
+       "description": "Grating angle (mrad):",
+       "layout": "IPY_MODEL_7afcd4e0cfdc45aaafc97a923ef8af2e",
+       "max": 10,
+       "min": 1,
+       "step": 0.05,
+       "style": "IPY_MODEL_a69690a59e75427cb3df23767adb70ce",
+       "value": 3.1
+      }
+     },
+     "ff15da5594f94778b6cd10248ce20448": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ff3dcdac3a884084b957cfc92f200413": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ff4c6090397e4711844908bcc1240fac": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DropdownModel",
+      "state": {
+       "_options_labels": [
+        "Custom",
+        "O",
+        "Fe",
+        "Co",
+        "Ni",
+        "Cu",
+        "Gd"
+       ],
+       "description": "Type:",
+       "index": 2,
+       "layout": "IPY_MODEL_61f547a8952140d48ee6c07c5ea28587",
+       "style": "IPY_MODEL_08d8e10bba014f5f98c2ab9287f483ed"
+      }
+     },
+     "ff4f504201d84d7da355cc5d8b14b39a": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ff550453a3444628888b482998d3aac2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "BoundedIntTextModel",
+      "state": {
+       "description": "Low:",
+       "layout": "IPY_MODEL_945cee30ed8e4859bed26023b7b0ef60",
+       "max": 3200,
+       "min": 450,
+       "style": "IPY_MODEL_7f9064ee75c74146a53456b8b34f41be",
+       "value": 840
+      }
+     },
+     "ff55576b46fe4b7b8e6e116aed8d2905": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "AccordionModel",
+      "state": {
+       "_titles": {
+        "0": "Detector"
+       },
+       "children": [
+        "IPY_MODEL_846d027ddbc7418caf69b5e3799c036c"
+       ],
+       "layout": "IPY_MODEL_c3cd2091118f4634adc474f9aa848b4c"
+      }
+     },
+     "ff8925e683be437dab5e91d4b3770f83": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ffa789d47ba64884981a8f6a5d5d6394": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     },
+     "ffb9023a9db74e9dba659478dae0d206": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "ffc6518e02924afbbff504ebd07da4d0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": "initial"
+      }
+     },
+     "ffe38966f27144a88cdd7eb29dea4afa": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "description_width": ""
+      }
+     }
+    },
+    "version_major": 2,
+    "version_minor": 0
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/example/TZPGcalc.png b/doc/source/TZPGcalc.png
similarity index 100%
rename from example/TZPGcalc.png
rename to doc/source/TZPGcalc.png
diff --git a/doc/source/conf.py b/doc/source/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..1c0d3879b82bde88097e2dc3164ebd215685b727
--- /dev/null
+++ b/doc/source/conf.py
@@ -0,0 +1,182 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'TZPG calculator'
+copyright = '2021, Loïc Le Guyader'
+author = 'Loïc Le Guyader'
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = ''
+
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autodoc',
+    'sphinx.ext.mathjax',
+    'sphinx_rtd_theme',
+    'nbsphinx',
+    'jupyter_sphinx.execute'
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+# html_theme = 'alabaster'
+html_theme = 'sphinx_rtd_theme'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'TZPGcalculatordoc'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'TZPGcalculator.tex', 'TZPG calculator Documentation',
+     'Loïc Le Guyader', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'tzpgcalculator', 'TZPG calculator Documentation',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'TZPGcalculator', 'TZPG calculator Documentation',
+     author, 'TZPGcalculator', 'One line description of project.',
+     'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+
+# -- Extension configuration -------------------------------------------------
diff --git a/doc/source/index.rst b/doc/source/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..bca9bb9facc2b1360907a6db0cfbcf21e22a8fd3
--- /dev/null
+++ b/doc/source/index.rst
@@ -0,0 +1,44 @@
+.. TZPG calculator documentation master file, created by
+   sphinx-quickstart on Thu Sep 23 13:18:21 2021.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to TZPG calculator's documentation!
+===========================================
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents:
+
+Installation
+============
+
+The installation steps are
+
+1. Clone the git repository
+
+   .. code:: bash
+
+      git clone https://git.xfel.eu/gitlab/SCS/tzpgcalc.git
+
+
+#. Install the package
+
+   .. code:: bash
+
+      cd tzpgcalc
+      pip3 install -U -e .
+
+Usage
+=====
+
+The following notebook demonstrate how to use the calculator:
+:doc:`TZPG calculator <Interactive TZPG calculator>`
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/example/2019-12-11_Interactive_TZPGs_calculator.ipynb b/example/2019-12-11_Interactive_TZPGs_calculator.ipynb
deleted file mode 100644
index b3c6db34ce890870153716ada433f4d2ac89d264..0000000000000000000000000000000000000000
--- a/example/2019-12-11_Interactive_TZPGs_calculator.ipynb
+++ /dev/null
@@ -1,898 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Cloning into 'TZPGcalc'...\n",
-      "remote: Enumerating objects: 10, done.\u001b[K\n",
-      "remote: Counting objects: 100% (10/10), done.\u001b[K\n",
-      "remote: Compressing objects: 100% (8/8), done.\u001b[K\n",
-      "remote: Total 10 (delta 2), reused 0 (delta 0)\u001b[K\n",
-      "Unpacking objects: 100% (10/10), done.\n"
-     ]
-    }
-   ],
-   "source": [
-    "!git clone https://in.xfel.eu/gitlab/SCS/TZPGcalc.git/"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "\n",
-       "mpl.get_websocket_type = function() {\n",
-       "    if (typeof(WebSocket) !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert('Your browser does not have WebSocket support. ' +\n",
-       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "              'Firefox 4 and 5 are also supported but you ' +\n",
-       "              'have to enable WebSockets in about:config.');\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent = (\n",
-       "                \"This browser does not support binary websocket messages. \" +\n",
-       "                    \"Performance may be slow.\");\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = $('<div/>');\n",
-       "    this._root_extra_style(this.root)\n",
-       "    this.root.attr('style', 'display: inline-block');\n",
-       "\n",
-       "    $(parent_element).append(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen =  function () {\n",
-       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
-       "            fig.send_message(\"send_image_mode\", {});\n",
-       "            if (mpl.ratio != 1) {\n",
-       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
-       "            }\n",
-       "            fig.send_message(\"refresh\", {});\n",
-       "        }\n",
-       "\n",
-       "    this.imageObj.onload = function() {\n",
-       "            if (fig.image_mode == 'full') {\n",
-       "                // Full images could contain transparency (where diff images\n",
-       "                // almost always do), so we need to clear the canvas so that\n",
-       "                // there is no ghosting.\n",
-       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "            }\n",
-       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "        };\n",
-       "\n",
-       "    this.imageObj.onunload = function() {\n",
-       "        fig.ws.close();\n",
-       "    }\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function() {\n",
-       "    var titlebar = $(\n",
-       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
-       "        'ui-helper-clearfix\"/>');\n",
-       "    var titletext = $(\n",
-       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
-       "        'text-align: center; padding: 3px;\"/>');\n",
-       "    titlebar.append(titletext)\n",
-       "    this.root.append(titlebar);\n",
-       "    this.header = titletext[0];\n",
-       "}\n",
-       "\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = $('<div/>');\n",
-       "\n",
-       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
-       "\n",
-       "    function canvas_keyboard_event(event) {\n",
-       "        return fig.key_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
-       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
-       "    this.canvas_div = canvas_div\n",
-       "    this._canvas_extra_style(canvas_div)\n",
-       "    this.root.append(canvas_div);\n",
-       "\n",
-       "    var canvas = $('<canvas/>');\n",
-       "    canvas.addClass('mpl-canvas');\n",
-       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
-       "\n",
-       "    this.canvas = canvas[0];\n",
-       "    this.context = canvas[0].getContext(\"2d\");\n",
-       "\n",
-       "    var backingStore = this.context.backingStorePixelRatio ||\n",
-       "\tthis.context.webkitBackingStorePixelRatio ||\n",
-       "\tthis.context.mozBackingStorePixelRatio ||\n",
-       "\tthis.context.msBackingStorePixelRatio ||\n",
-       "\tthis.context.oBackingStorePixelRatio ||\n",
-       "\tthis.context.backingStorePixelRatio || 1;\n",
-       "\n",
-       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband = $('<canvas/>');\n",
-       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
-       "\n",
-       "    var pass_mouse_events = true;\n",
-       "\n",
-       "    canvas_div.resizable({\n",
-       "        start: function(event, ui) {\n",
-       "            pass_mouse_events = false;\n",
-       "        },\n",
-       "        resize: function(event, ui) {\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "        stop: function(event, ui) {\n",
-       "            pass_mouse_events = true;\n",
-       "            fig.request_resize(ui.size.width, ui.size.height);\n",
-       "        },\n",
-       "    });\n",
-       "\n",
-       "    function mouse_event_fn(event) {\n",
-       "        if (pass_mouse_events)\n",
-       "            return fig.mouse_event(event, event['data']);\n",
-       "    }\n",
-       "\n",
-       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
-       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
-       "\n",
-       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
-       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
-       "\n",
-       "    canvas_div.on(\"wheel\", function (event) {\n",
-       "        event = event.originalEvent;\n",
-       "        event['data'] = 'scroll'\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        mouse_event_fn(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.append(canvas);\n",
-       "    canvas_div.append(rubberband);\n",
-       "\n",
-       "    this.rubberband = rubberband;\n",
-       "    this.rubberband_canvas = rubberband[0];\n",
-       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
-       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
-       "\n",
-       "    this._resize_canvas = function(width, height) {\n",
-       "        // Keep the size of the canvas, canvas container, and rubber band\n",
-       "        // canvas in synch.\n",
-       "        canvas_div.css('width', width)\n",
-       "        canvas_div.css('height', height)\n",
-       "\n",
-       "        canvas.attr('width', width * mpl.ratio);\n",
-       "        canvas.attr('height', height * mpl.ratio);\n",
-       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
-       "\n",
-       "        rubberband.attr('width', width);\n",
-       "        rubberband.attr('height', height);\n",
-       "    }\n",
-       "\n",
-       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
-       "    // upon first draw.\n",
-       "    this._resize_canvas(600, 600);\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus () {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>');\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            // put a spacer in here.\n",
-       "            continue;\n",
-       "        }\n",
-       "        var button = $('<button/>');\n",
-       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
-       "                        'ui-button-icon-only');\n",
-       "        button.attr('role', 'button');\n",
-       "        button.attr('aria-disabled', 'false');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "\n",
-       "        var icon_img = $('<span/>');\n",
-       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
-       "        icon_img.addClass(image);\n",
-       "        icon_img.addClass('ui-corner-all');\n",
-       "\n",
-       "        var tooltip_span = $('<span/>');\n",
-       "        tooltip_span.addClass('ui-button-text');\n",
-       "        tooltip_span.html(tooltip);\n",
-       "\n",
-       "        button.append(icon_img);\n",
-       "        button.append(tooltip_span);\n",
-       "\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker_span = $('<span/>');\n",
-       "\n",
-       "    var fmt_picker = $('<select/>');\n",
-       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
-       "    fmt_picker_span.append(fmt_picker);\n",
-       "    nav_element.append(fmt_picker_span);\n",
-       "    this.format_dropdown = fmt_picker[0];\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = $(\n",
-       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
-       "        fmt_picker.append(option);\n",
-       "    }\n",
-       "\n",
-       "    // Add hover states to the ui-buttons\n",
-       "    $( \".ui-button\" ).hover(\n",
-       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
-       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
-       "    );\n",
-       "\n",
-       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function(type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function() {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1]);\n",
-       "        fig.send_message(\"refresh\", {});\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
-       "    var x0 = msg['x0'] / mpl.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
-       "    var x1 = msg['x1'] / mpl.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch(cursor)\n",
-       "    {\n",
-       "    case 0:\n",
-       "        cursor = 'pointer';\n",
-       "        break;\n",
-       "    case 1:\n",
-       "        cursor = 'default';\n",
-       "        break;\n",
-       "    case 2:\n",
-       "        cursor = 'crosshair';\n",
-       "        break;\n",
-       "    case 3:\n",
-       "        cursor = 'move';\n",
-       "        break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message(\"ack\", {});\n",
-       "}\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = \"image/png\";\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src);\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data);\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig[\"handle_\" + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "}\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function(e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e)\n",
-       "        e = window.event;\n",
-       "    if (e.target)\n",
-       "        targ = e.target;\n",
-       "    else if (e.srcElement)\n",
-       "        targ = e.srcElement;\n",
-       "    if (targ.nodeType == 3) // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "\n",
-       "    // jQuery normalizes the pageX and pageY\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    // offset() returns the position of the element relative to the document\n",
-       "    var x = e.pageX - $(targ).offset().left;\n",
-       "    var y = e.pageY - $(targ).offset().top;\n",
-       "\n",
-       "    return {\"x\": x, \"y\": y};\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys (original) {\n",
-       "  return Object.keys(original).reduce(function (obj, key) {\n",
-       "    if (typeof original[key] !== 'object')\n",
-       "        obj[key] = original[key]\n",
-       "    return obj;\n",
-       "  }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event)\n",
-       "\n",
-       "    if (name === 'button_press')\n",
-       "    {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * mpl.ratio;\n",
-       "    var y = canvas_pos.y * mpl.ratio;\n",
-       "\n",
-       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
-       "                             step: event.step,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function(event, name) {\n",
-       "\n",
-       "    // Prevent repeat events\n",
-       "    if (name == 'key_press')\n",
-       "    {\n",
-       "        if (event.which === this._key)\n",
-       "            return;\n",
-       "        else\n",
-       "            this._key = event.which;\n",
-       "    }\n",
-       "    if (name == 'key_release')\n",
-       "        this._key = null;\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which != 17)\n",
-       "        value += \"ctrl+\";\n",
-       "    if (event.altKey && event.which != 18)\n",
-       "        value += \"alt+\";\n",
-       "    if (event.shiftKey && event.which != 16)\n",
-       "        value += \"shift+\";\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, {key: value,\n",
-       "                             guiEvent: simpleKeys(event)});\n",
-       "    return false;\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
-       "    if (name == 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message(\"toolbar_button\", {name: name});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function() {\n",
-       "        comm.close()\n",
-       "    };\n",
-       "    ws.send = function(m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function(msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data'])\n",
-       "    });\n",
-       "    return ws;\n",
-       "}\n",
-       "\n",
-       "mpl.mpl_figure_comm = function(comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = $(\"#\" + id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm)\n",
-       "\n",
-       "    function ondownload(figure, format) {\n",
-       "        window.open(figure.imageObj.src);\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy,\n",
-       "                           ondownload,\n",
-       "                           element.get(0));\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element.get(0);\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "\n",
-       "    var output_index = fig.cell_info[2]\n",
-       "    var cell = fig.cell_info[0];\n",
-       "\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
-       "    var width = fig.canvas.width/mpl.ratio\n",
-       "    fig.root.unbind('remove')\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable()\n",
-       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
-       "    fig.close_ws(fig, msg);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width/mpl.ratio\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function() {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message(\"ack\", {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function() {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var nav_element = $('<div/>');\n",
-       "    nav_element.attr('style', 'width: 100%');\n",
-       "    this.root.append(nav_element);\n",
-       "\n",
-       "    // Define a callback function for later on.\n",
-       "    function toolbar_event(event) {\n",
-       "        return fig.toolbar_button_onclick(event['data']);\n",
-       "    }\n",
-       "    function toolbar_mouse_event(event) {\n",
-       "        return fig.toolbar_button_onmouseover(event['data']);\n",
-       "    }\n",
-       "\n",
-       "    for(var toolbar_ind in mpl.toolbar_items){\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) { continue; };\n",
-       "\n",
-       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
-       "        button.click(method_name, toolbar_event);\n",
-       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
-       "        nav_element.append(button);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
-       "    nav_element.append(status_bar);\n",
-       "    this.message = status_bar[0];\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
-       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
-       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
-       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
-       "    buttongrp.append(button);\n",
-       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
-       "    titlebar.prepend(buttongrp);\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function(el){\n",
-       "    var fig = this\n",
-       "    el.on(\"remove\", function(){\n",
-       "\tfig.close_ws(fig, {});\n",
-       "    });\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.attr('tabindex', 0)\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "    else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager)\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which == 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        event.shiftKey = false;\n",
-       "        // Send a \"J\" for go to next cell\n",
-       "        event.which = 74;\n",
-       "        event.keyCode = 74;\n",
-       "        manager.command_mode();\n",
-       "        manager.handle_keydown(event);\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "}\n",
-       "\n",
-       "\n",
-       "mpl.find_output_cell = function(html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i=0; i<ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code'){\n",
-       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] == html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "}\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel != null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,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JyF86KGHIITAiBEjvP6ZiPWgEJKwY9euXcoJW30CdT5In5yc7HFuu3O6g9lCGMopo+oLmDdhCwbn8UM9ZfS2226DEAIPPfSQx+M6p3aGWgidf5fTp0/3uC8hhBhBMMtOqM9/obge+BLChoYGZZrj2rVr/T7+fffdByH0nzL64YcfejxWS6aMhkoIvU0Zraur83vKqBG1jichdP47ve666zzuS6wJhZCEHfv27VNO2CtWrFA+d76h1FuBP3bsWEsI4e9//3uP+zufU/TnpTLO5xbdPWcXCpzf+/Of/9xjn4ULF0KIy6/y9rR/8wLDOeXJU1Fx8eJF5W10oRZC50twOnfu7DL1mBBCjCTQhek7duyorNXnJNjrgfNZtI8//thjH+fLz+666y6/j+98Pi0qKsqvl8ocO3bM401HJy19qcyTTz4JIby/VCZUQujtRXVqMW3pS2WMqHU8CaH6JTjq5TiI9aEQEmn497//3aI1fh577DHlhPT3v/9d+fzxxx+HEJcfonZ38n3vvfeU/cwWwqSkJLcS8vHHHyt9mj/o700If/vb30KIy9NMv/jiC49jA6CstecPzu+12Wxup+GcPXtWWTT44Ycf9rh/cyFMTU31uA9w5U1wegjhN998o9yZbf4G0ubU19cH9fpxQgjxRkuFsKamRvPcdfNphkDw1wPn4vKlpaUe93v99dchxOVn15q/UdvXd3z//ffKM27Tpk1r8bITVVVVyp/b25/r4YcfVm5Oult24uTJk8o6hb/85S812/QQQk/XqKamJuUt2CkpKR73b15vGFHreBLCxsZG5W3rN910k8tU1eYEUm8QfaAQEml455130KpVK9x5553YuHGj5mTc0NCAL774Qnk7mRCXX4esni6hnrL48MMPKyei6upqrF27FrGxsUhISLCEEHbs2BG33XabIleNjY3461//qtzZHDZsmMvaUN6E8OLFi8ri8B07dkRBQQG+++47ZXtVVRXee+89/OIXv3B74fGFetw9e/ZEWVmZciH6/PPPMWTIEAgh0L59e7cL0XoSQuf02KioKKxbt065uJw+fRqPPvqocgdXDyEErrxaW4jL03r279+vbGtsbMSePXvw7LPPonv37m7XQSSEkFDgTQibmpqwf/9+LF++HDfccIPmnOVOCIK9HjhnqUyePFlZbL45drtdmc4fHR2N5557TrMI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\" width=\"900\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "application/vnd.jupyter.widget-view+json": {
-       "model_id": "2857a27b5bef44d7b3cee485285b5f57",
-       "version_major": 2,
-       "version_minor": 0
-      },
-      "text/plain": [
-       "VBox(children=(Accordion(children=(VBox(children=(HBox(children=(Label(value='Energy (eV):'), FloatRangeSlider…"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/plain": [
-       "<TZPGcalc.TZPGcalc.TZPGcalc at 0x7f66c4509940>"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "import numpy as np\n",
-    "%matplotlib notebook\n",
-    "import matplotlib.pyplot as plt\n",
-    "\n",
-    "import matplotlib as mpl\n",
-    "mpl.rcParams['savefig.dpi'] = 300\n",
-    "mpl.rcParams['figure.dpi'] = 150\n",
-    "mpl.rcParams['figure.constrained_layout.use'] = True\n",
-    "\n",
-    "from TZPGcalc import TZPGcalc\n",
-    "\n",
-    "TZPGcalc()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.6.9"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..f62f9742bad2919399bd0a590e03310154b8cd5e
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,12 @@
+from setuptools import setup, find_packages
+
+setup(name='TZPGcalc',
+      version=1.0,
+      description='TZPG calculator for SCS',
+      author='Loïc Le Guyader',
+      author_email='loic.le.guyader@xfel.eu',
+      url='https://in.xfel.eu/gitlab/SCS/tzpgcalc',
+      packages=find_packages('src'),
+      package_dir={'': 'src'},
+      python_requires='>=3.8'
+      )
diff --git a/src/TZPGcalc/GeoBeams.py b/src/TZPGcalc/GeoBeams.py
new file mode 100644
index 0000000000000000000000000000000000000000..f0fc76a659bf3eda1a90a651af9dd021a68badd6
--- /dev/null
+++ b/src/TZPGcalc/GeoBeams.py
@@ -0,0 +1,277 @@
+# -*- coding: utf-8 -*-
+""" Geometric beam calculator for SCS.
+
+    Copyright (2021) SCS Team.
+"""
+
+import numpy as np
+import matplotlib.pyplot as plt
+from sympy.physics.optics import GeometricRay, FreeSpace, ThinLens
+from sympy.solvers import solve
+from sympy import symbols, simplify
+from sympy.utilities.lambdify import lambdify
+
+
+class GeoBeams:
+    """The Beams object to compute beam propagation from source point to sample.
+
+    Inputs
+    ------
+    elems : dict
+        dictionnaries of numerical values for the different parameters.
+    """
+    def __init__(self):
+        # all distances in meters
+        self.elems = {
+            'dIHF': -56,  # Intermediate Horizontal Focus position
+            'dEX': -30,  # Exit Slit position
+            'dHFM': -3.35,  # Horizontal Focusing Mirror position
+            'fHFM': 5.74,  # HFM focal length
+            'dVFM': -2,  # Vertical Focusing Mirror position
+            'fVFM': 5.05,  # VFM focal length
+            'dBOZ': -0.23,  # Beam splitting Off axis Zone plate position
+            'fBOZ': 0.25,  # BOZ focal length
+            'theta_grating': 0,  # grating deflection angle in rad
+            'dSAMZ': 0.0,  # Sample position
+            'WH': 0.8e-3,  # BOZ horizontal width
+            'WV': 0.8e-3,  # BOZ vertical width
+            'offaxis': -0.55e-3,  # BOZ center to optical axis
+            'EXw': 100e-6,  # Exit Slit width
+            'IHFw': 200e-6,  # IHF source width
+            'x1': 0,  # horizontal beam height at source
+            'theta1_x': 0,  # horizontal beam angle at source
+            'x2': 0,  # horizontal beam height at BOZ
+            'y1': 0,  # vertical beam height at source
+            'theta1_y': 0,  # vertical beam angle at source
+            'y2': 0  # vertical beam height at BOZ
+        }
+        self.compute_eqs()
+
+    def compute_eqs(self):
+        """Compute the beam propagation equation between source and zone plate.
+
+        eq_x, eq_y: tuple, the horizontal x and vertical y equations to
+            compute the initial angle from the source to pass by the zone plate
+            position x2, given the source position at x1.
+        """
+        dEX, dIHF, dVFM, dHFM, dBOZ = symbols('dEX, dIHF, dVFM, dHFM, dBOZ')
+        fVFM, fHFM, fBOZ = symbols('fVFM, fHFM, fBOZ')
+        x1, theta1_x, x2 = symbols('x1, theta1_x, x2')
+        y1, theta1_y, y2 = symbols('y1, theta1_y, y2')
+
+        # horizontal and vertical beam propagation from the
+        # source to the zone plate
+        self.HFM = simplify(
+            FreeSpace(-dHFM+dBOZ)*ThinLens(fHFM) *
+            FreeSpace(-dIHF+dHFM)*GeometricRay(x1, theta1_x))
+        self.VFM = simplify(
+            FreeSpace(-dVFM+dBOZ)*ThinLens(fVFM) *
+            FreeSpace(-dEX+dVFM)*GeometricRay(y1, theta1_y))
+        self.HFM_f = lambdify(self.elems.keys(), self.HFM, ['numpy'])
+        self.VFM_f = lambdify(self.elems.keys(), self.VFM, ['numpy'])
+
+        # beams for the zone plate first order (0th order is unfocused)
+        self.HBOZ = simplify(ThinLens(fBOZ)*self.HFM)
+        self.VBOZ = simplify(ThinLens(fBOZ)*self.VFM)
+        self.HBOZ_f = lambdify(self.elems.keys(), self.HBOZ, ['numpy'])
+        self.VBOZ_f = lambdify(self.elems.keys(), self.VBOZ, ['numpy'])
+
+        # solve which beam angle at the source theta1 ends on the
+        # zone plate at x2, given x1
+        self.theta1_x = solve(self.HFM[0] - x2, theta1_x)[0]
+        self.theta1_y = solve(self.VFM[0] - y2, theta1_y)[0]
+        self.theta1_x_f = lambdify(self.elems.keys(), self.theta1_x, ['numpy'])
+        self.theta1_y_f = lambdify(self.elems.keys(), self.theta1_y, ['numpy'])
+
+    def path(self):
+        """Compute the horizontal and vertical beam propagation.
+
+        """
+
+        x = []
+        z_x = []
+
+        # source
+        x1 = self.elems['x1']
+        angle1 = self.elems['theta1_x']
+        x += [x1]
+        z_x += [self.elems['dIHF']]
+        ray = GeometricRay(x1, angle1)
+
+        # KBS
+        ray = (ThinLens(self.elems['fHFM']) *
+               FreeSpace(-self.elems['dIHF'] + self.elems['dHFM'])*ray)
+        z_x += [self.elems['dHFM']]
+        x += [ray[0].evalf()]
+
+        # BOZ
+        ray = (ThinLens(self.elems['fBOZ']) *
+               FreeSpace(-self.elems['dHFM'] + self.elems['dBOZ'])*ray)
+        z_x += [self.elems['dBOZ']]
+        x += [ray[0].evalf()]
+
+        # sample
+        ray = FreeSpace(-self.elems['dBOZ']+self.elems['dSAMZ'])*ray
+        z_x += [self.elems['dSAMZ']]
+        x += [ray[0].evalf()]
+
+        y = []
+        z_y = []
+
+        # source
+        y1 = self.elems['y1']
+        angle1 = self.elems['theta1_y']
+        y += [y1]
+        z_y += [self.elems['dEX']]
+        ray = GeometricRay(y1, angle1)
+
+        # KBS
+        ray = (ThinLens(self.elems['fVFM']) *
+               FreeSpace(-self.elems['dEX']+self.elems['dVFM'])*ray)
+        z_y += [self.elems['dVFM']]
+        y += [ray[0].evalf()]
+
+        # BOZ
+        ray = (ThinLens(self.elems['fBOZ']) *
+               FreeSpace(-self.elems['dVFM']+self.elems['dBOZ'])*ray)
+        z_y += [self.elems['dBOZ']]
+        y += [ray[0].evalf()]
+
+        # sample
+        ray = FreeSpace(-self.elems['dBOZ']+self.elems['dSAMZ'])*ray
+        z_y += [self.elems['dSAMZ']]
+        y += [ray[0].evalf()]
+
+        return z_x, x, z_y, y
+
+    def plot(self):
+        fig, ax = plt.subplots(2, 1, figsize=(6, 4), sharex=True, sharey=True)
+
+        xmin, xmax = [np.Inf, -np.Inf]
+        ymin, ymax = [np.Inf, -np.Inf]
+        for k, (x2, y2) in enumerate(zip(
+                [self.elems['WH']/2, -self.elems['WH']/2],
+                np.array([self.elems['WV']/2, -self.elems['WV']/2])
+                + self.elems['offaxis'])):
+            for kk, (x1, y1) in enumerate(zip(
+                    [self.elems['IHFw']/2, -self.elems['IHFw']/2],
+                    [self.elems['EXw']/2, -self.elems['EXw']/2])):
+                c = f'C{3*k+kk}'
+
+                self.elems['x1'] = x1
+                self.elems['x2'] = x2
+                self.elems['y1'] = y1
+                self.elems['y2'] = y2
+
+                self.elems['theta1_x'] = self.theta1_x_f(
+                    *list(self.elems.values()))
+                self.elems['theta1_y'] = self.theta1_y_f(
+                    *list(self.elems.values()))
+
+                z_x, x, z_y, y = self.path()
+                ax[0].plot(z_x, 1e3*np.array(x), c=c)
+                ax[1].plot(z_y, 1e3*np.array(y), c=c)
+
+                if xmin > x[-1]:
+                    xmin = x[-1]
+                if xmax < x[-1]:
+                    xmax = x[-1]
+
+                if ymin > y[-1]:
+                    ymin = y[-1]
+                if ymax < y[-1]:
+                    ymax = y[-1]
+
+        ax[0].set_ylabel('x (mm)')
+        ax[1].set_ylabel('y (mm)')
+        ax[1].set_xlabel('z (m)')
+
+        return fig
+
+    def plane_image(self, p0, n, ZPorder, Gorder=0):
+        """Compute the BOZ image on a plane.
+
+        Inputs
+        ------
+            p0: [x, y, z] point on the imaging plane
+            n: [X, Y, Z] plane normal vector
+            ZPorder: int, order of the zone plate, i.e. 0 or 1
+            Gorder: int, grating order, in [-1, 0, 1]
+        Returns
+        -------
+            list of 4 corners [x,y]
+        """
+        xmin, xmax = [np.Inf, -np.Inf]
+        ymin, ymax = [np.Inf, -np.Inf]
+        for k, (x2, y2) in enumerate(zip(
+                [self.elems['WH']/2, -self.elems['WH']/2],
+                np.array([self.elems['WV']/2, -self.elems['WV']/2])
+                + self.elems['offaxis'])):
+            for kk, (x1, y1) in enumerate(zip(
+                    [self.elems['IHFw']/2, -self.elems['IHFw']/2],
+                    [self.elems['EXw']/2, -self.elems['EXw']/2])):
+
+                self.elems['x1'] = x1
+                self.elems['y1'] = y1
+                self.elems['x2'] = x2
+                self.elems['y2'] = y2
+
+                self.elems['theta1_x'] = self.theta1_x_f(
+                    *list(self.elems.values()))
+                self.elems['theta1_y'] = self.theta1_y_f(
+                    *list(self.elems.values()))
+
+                # evaluate HFM/VFM or HBOZ/VBOZ
+                if ZPorder == 1:
+                    bx = self.HBOZ_f(*list(self.elems.values()))
+                    by = self.VBOZ_f(*list(self.elems.values()))
+                elif ZPorder == 0:
+                    bx = self.HFM_f(*list(self.elems.values()))
+                    by = self.VFM_f(*list(self.elems.values()))
+                else:
+                    raise ValueError(
+                        'ZPorder other than 0 or 1 not implemented')
+
+                # intersection beam with plane
+                l1 = np.array([x2, y2, self.elems['dBOZ']])
+                l12 = np.array([bx[1][0] + Gorder*self.elems['theta_grating'],
+                                by[1][0], 1])
+
+                p = self.LinePlaneIntersection(p0, n, l1, l12=l12)
+
+                if xmin > p[0]:
+                    xmin = p[0]
+                if xmax < p[0]:
+                    xmax = p[0]
+
+                if ymin > p[1]:
+                    ymin = p[1]
+                if ymax < p[1]:
+                    ymax = p[1]
+
+        return np.array([[xmax, ymax], [xmax, ymin],
+                         [xmin, ymin], [xmin, ymax]])
+
+    def LinePlaneIntersection(self, p0, n, l1, *, l2=None, l12=None):
+        """ Calculate the intersection point in space between a line (beam)
+            passing through 2 points l1 and l2 and a (sample) plane passing by
+            p0 with normal n
+
+            l1: [x,y,z] point on line
+            l2: [x,y,z] point on line
+            p0: [x,y,z] point on plane
+            n: plane normal vector
+        """
+        assert not((l2 is None) and (l12 is None)), (
+            "Either l2 or l12 must be defined")
+
+        # plane parametrized as (p - p0).n = 0
+        # line parametrized as p = l1 + l12*d with d Real
+        if l12 is None:
+            l12 = l2 - l1
+
+        if np.dot(l12, n) == 0:
+            return [0, 0, 0]  # line is either in the plane or outside of it
+        else:
+            d = np.dot((p0 - l1), n)/np.dot(l12, n)
+            return l1 + l12*d
diff --git a/src/TZPGcalc/TZPGcalc.py b/src/TZPGcalc/TZPGcalc.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff0fb2c6885fef26a8fb39c7216428825a2e368c
--- /dev/null
+++ b/src/TZPGcalc/TZPGcalc.py
@@ -0,0 +1,771 @@
+# -*- coding: utf-8 -*-
+""" TZPG simple calculator for SCS.
+
+    Interactive widget to calculate beam sizes and position at the sample and
+    detector planes for the SCS instrument.
+
+    Copyright (2019-2021) SCS Team.
+"""
+
+import numpy as np
+import pandas as pd
+import matplotlib.pyplot as plt
+from matplotlib.patches import Rectangle, Polygon
+from matplotlib.colors import hsv_to_rgb
+
+import ipywidgets as widgets
+from ipywidgets import HBox, VBox
+from IPython.display import display
+
+from TZPGcalc.GeoBeams import GeoBeams
+
+
+# number of membrane to show
+SampleN = 7
+
+# Database of existing zone plates parameters
+TZPG_db = {
+    'Custom': {
+        'design_nrj': 860,
+        'TZPGwH': 1,
+        'TZPGwV': 1,
+        'TZPGoffaxis': 0.75,
+        'grating': 3.8,
+        'F': 0.25
+    },
+    'O': {
+        'design_nrj': 530,
+        'TZPGwH': 0.8,
+        'TZPGwV': 0.8,
+        'TZPGoffaxis': 0.55,
+        'grating': 3.1,
+        'F': 0.25
+    },
+    'Fe': {
+        'design_nrj': 715,
+        'TZPGwH': 0.8,
+        'TZPGwV': 0.8,
+        'TZPGoffaxis': 0.55,
+        'grating': 3.1,
+        'F': 0.25
+    },
+    'Co': {
+        'design_nrj': 785,
+        'TZPGwH': 0.8,
+        'TZPGwV': 0.8,
+        'TZPGoffaxis': 0.55,
+        'grating': 3.1,
+        'F': 0.25
+    },
+    'Ni': {
+        'design_nrj': 860,
+        'TZPGwH': 0.8,
+        'TZPGwV': 0.8,
+        'TZPGoffaxis': 0.55,
+        'grating': 3.1,
+        'F': 0.25
+    },
+    'Cu': {
+        'design_nrj': 927,
+        'TZPGwH': 0.8,
+        'TZPGwV': 0.8,
+        'TZPGoffaxis': 0.55,
+        'grating': 3.1,
+        'F': 0.25
+    },
+    'Gd': {
+        'design_nrj': 1210,
+        'TZPGwH': 0.8,
+        'TZPGwV': 0.8,
+        'TZPGoffaxis': 0.55,
+        'grating': 3.1,
+        'F': 0.25
+    }
+}
+
+
+class TZPGcalc():
+    def __init__(self):
+        self.geo_beams = GeoBeams()
+        self.initFig()
+        self.initWidgets()
+        for v in ['fVFM', 'fHFM', 'EXw', 'IHFw']:
+            if v in ['fVFM', 'fHFM']:
+                scale = 1.0
+            else:
+                scale = 1e6
+            self.widgets[v].value = scale*self.geo_beams.elems[v]
+
+        # spot sizes of all beams
+        self.SpotSizes = {}
+        for d in ['det', 'sam']:
+            self.SpotSizes[d] = {}
+            for k in ['L', 'H']:
+                self.SpotSizes[d][k] = np.zeros((6, 2))
+
+        self.UpdateFig()
+        display(self.control)
+
+    def initFig(self):
+        "Creates a figure for the sample plane and detector plane images."
+
+        plt.close('TZPGcalc')
+        fig, (self.ax_sam, self.ax_det) = plt.subplots(
+            1, 2, num='TZPGcalc', figsize=(6, 3))
+
+        # display scale
+        self.scale = 1e3  # displayed distances in [mm]
+
+        self.ax_sam.set_title('Sample plane')
+        self.ax_det.set_title('Detector plane')
+
+        self.ax_sam.set_aspect('equal')
+        self.ax_det.set_aspect('equal')
+        self.ax_sam.set_xlim([-2, 2])
+        self.ax_sam.set_ylim([-2, 2])
+        self.ax_det.set_xlim([-35, 35])
+        self.ax_det.set_ylim([-20, 50])
+
+        # red and blue shifted color of the beams
+        c_rr = hsv_to_rgb([0/360, 50/100, 100/100])
+        c_rb = hsv_to_rgb([40/360, 50/100, 100/100])
+        c_gr = hsv_to_rgb([95/360, 60/100, 100/100])
+        c_gb = hsv_to_rgb([145/360, 60/100, 100/100])
+
+        self.samBeamsL = {
+            'F0G0': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G-1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F1G0': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor=c_rr, alpha=0.7, lw=None)),
+            'F1G1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None)),
+            'F1G-1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None))
+            }
+
+        self.detBeamsL = {
+            'F0G0': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G-1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F1G0': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor=c_rr, alpha=0.7, lw=None)),
+            'F1G1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None)),
+            'F1G-1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor=c_gr, alpha=0.7, lw=None))
+            }
+
+        self.samBeamsH = {
+            'F0G0': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G-1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F1G0': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor=c_rb, alpha=0.7, lw=None)),
+            'F1G1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None)),
+            'F1G-1': self.ax_sam.add_patch(
+                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None))
+            }
+
+        self.detBeamsH = {
+            'F0G0': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F0G-1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor="black", alpha=0.4, lw=None)),
+            'F1G0': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor=c_rb, alpha=0.7, lw=None)),
+            'F1G1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None)),
+            'F1G-1': self.ax_det.add_patch(
+                Polygon([(0, 0)], facecolor=c_gb, alpha=0.7, lw=None))
+            }
+
+        self.detLines = {
+            'module': self.ax_det.add_patch(
+                Rectangle((0, 0), 1, 1, fill=False, facecolor='k')),
+            'Vfilter': self.ax_det.add_patch(
+                Rectangle((0, 0), 1, 1, facecolor="blue", alpha=0.4)),
+            'Hfilter': self.ax_det.add_patch(
+                Rectangle((0, 0), 1, 1, facecolor="blue", alpha=0.4)),
+            'diamond': self.ax_det.add_patch(
+                Rectangle((-8, -8), 16, 16, facecolor="blue", alpha=0.4,
+                          angle=45))
+               }
+
+        # 5x5 membranes
+        self.sampleLines = {}
+        self.etchLines = {}
+        for k in range(SampleN*SampleN):
+            self.sampleLines[k] = self.ax_sam.add_patch(
+                Rectangle((0, 0), 1, 1, fill=False, facecolor='k'))
+            self.etchLines[k] = self.ax_sam.add_patch(
+                Rectangle((0, 0), 1, 1, fill=False, facecolor='k',
+                          alpha=0.4, ls='--'))
+
+    def RectUpdate(self, rect, xLeft, yBottom, xRight, yTop):
+        """Updates the position and size of the given Rectangle.
+
+        Inputs
+        ------
+            rect: Rectangle to update
+            xLeft: x position of the left corner
+            yBottom: y position of the bottom corner
+            xRight: x position of the right corner
+            yTop: y position of the top corner
+        """
+
+        xw = np.abs(xLeft - xRight)
+        yw = np.abs(yTop - yBottom)
+
+        rect.set_xy((self.scale*xLeft, self.scale*yBottom))
+        rect.set_height(self.scale*yw)
+        rect.set_width(self.scale*xw)
+
+    def PolyUpdate(self, poly, xLeft, yBottom, xRight, yTop):
+        """Updates the corner position of a Polygon.
+
+        Inputs
+        ------
+            poly: regular Polygon to update
+            xLeft: x position of the left corner
+            yBottom: y position of the bottom corner
+            xRight: x position of the right corner
+            yTop: y position of the top corner
+        """
+
+        xy = self.scale*np.array([
+            [xLeft, yBottom],
+            [xLeft, yTop],
+            [xRight, yTop],
+            [xRight, yBottom]])
+
+        poly.set_xy(xy)
+
+    def UpdateBeams(self, Beams, img, conf):
+        """Updates the position and size of the beams.
+
+        Inputs
+        ------
+            Beams: dictionary of f'F{f}G{g}' Polygon for f = 0 and 1 zone
+                plate order and g = +1, 0 and -1 grating order
+            img: dictionary of parameters for the imaging plane
+            conf: dictionary of parameters for optics
+        """
+        # shortcut
+        sge = self.geo_beams.elems
+
+        sge['fBOZ'] = conf['F']
+        sge['theta_grating'] = conf['theta_grating']
+
+        # imaging plane
+        n = np.array([np.sin(img['incidence']),
+                      0,
+                      np.cos(img['incidence'])])
+        p0 = np.array([0, 0, img['z']])
+
+        res = {}
+        for z, (f, g) in enumerate([(0, -1), (0, 0), (0, 1),
+                                    (1, -1), (1, 0), (1, 1)]):
+            beam = f'F{f}G{g}'
+            res[beam] = (self.geo_beams.plane_image(p0, n, f, g)
+                         - np.array([0, sge['offaxis']]))  # 0th order offset
+
+            corners = self.scale*res[beam]
+
+            Beams[beam].set_xy(corners)
+            for k in [0, 1]:
+                vs = corners[:, k]
+                self.SpotSizes[img['type']][conf['Energy']][z, k] = (
+                    1e3*(np.max(vs) - np.min(vs)))
+
+    def DetectorUpdate(self, Xoff, Yoff):
+        """Draws DSSC detector module with filter mask.
+
+        Inputs
+        ------
+            Xoff: x offset
+            Yoff: y offset
+        """
+        # x module axis is vertical, y module axis is horizontal
+        # the module 15 is +0.91 mm vertical from the beam and
+        # 4.233 mm horizontal from the beam
+        offset_h = 4.233e-3  # [m]
+        offset_v = 0.91e-3  # [m]
+
+        moduleHw = 256*0.236e-3  # [m]
+        moduleVw = 128*0.204e-3  # [m]
+
+        filterW = 7e-3  # [m]
+        filterL = 160e-3  # [m]
+        diamondW = 16e-3  # [m]
+
+        self.RectUpdate(self.detLines['module'],
+                        -moduleHw - offset_h + Xoff, offset_v + Yoff,
+                        -offset_h + Xoff, moduleVw + offset_v + Yoff)
+        self.RectUpdate(self.detLines['Vfilter'],
+                        -filterW/2 + Xoff, -filterL/2 + Yoff,
+                        filterW/2 + Xoff, filterL/2 + Yoff)
+        self.RectUpdate(self.detLines['Hfilter'],
+                        -filterL/2 + Xoff, -filterW/2 + Yoff,
+                        filterL/2 + Xoff, filterW/2 + Yoff)
+
+        # moving rotated rectangles is a pain in matplotlib
+        self.detLines['diamond'].set_xy((
+            self.scale*Xoff, self.scale*(Yoff - diamondW/2*np.sqrt(2))))
+
+    def SampleUpdate(self, w, p, Xoff, Yoff, thickness=0.525,
+                     incidence=0, etch_angle=54.74):
+        """Draws the sample.
+
+        Inputs
+        ------
+            w: membrane width
+            p: membrane pitch
+            Xoff: sample x offset
+            Yoff: sample y offset
+            thickness: sample thickness used to calculate the etched facets
+            incidence: incidence angle in rad
+            etch_angle: etching angle from surface in rad
+        """
+        # Si etching angle
+        wp = w + 2*thickness/np.tan(etch_angle)
+
+        # incidence angle squeezes sample and etch lines
+        # and induces an apparent shift off the etch lines
+        ci = np.cos(incidence)
+        thsi = thickness*np.sin(incidence)
+
+        j = 0
+        for r in range(-(SampleN-1)//2, (SampleN-1)//2+1):
+            for c in range(-(SampleN-1)//2, (SampleN-1)//2+1):
+                self.RectUpdate(
+                    self.sampleLines[j],
+                    ci*(r*p - w/2 + Xoff), c*p - w/2 - Yoff,
+                    ci*(r*p + w/2 + Xoff), c*p + w/2 - Yoff)
+                self.RectUpdate(
+                    self.etchLines[j],
+                    ci*(r*p - wp/2 + Xoff)+thsi, c*p - wp/2 - Yoff,
+                    ci*(r*p + wp/2 + Xoff)+thsi, c*p + wp/2 - Yoff)
+                j += 1
+
+    def UpdateFig(self):
+        """Updates the figure with the current slider values.
+
+        """
+        # shortcuts
+        sw = self.widgets
+        sge = self.geo_beams.elems
+
+        # we calculate the optics for the central wavelength
+        nrjL = sw['nrjL'].value  # [eV]
+        nrjH = sw['nrjH'].value  # [eV]
+        wlL = 1240/nrjL*1e-9
+        wlH = 1240/nrjH*1e-9
+        nrjD = sw['nrjD'].value  # [eV]
+        wlD = 1240/nrjD*1e-9
+
+        F = sw['F'].value  # [m] hidden nominal focal length
+        theta_grating = sw['grating'].value*1e-3  # [rad]
+        sampleZ = sw['SAMZ'].value*1e-3  # [m]
+        samIncidence = np.deg2rad(sw['samIncidence'].value)  # [rad]
+        detectorZ = sw['detZ'].value*1e-3  # [m]
+
+        sge['WH'] = sw['TZPGwH'].value*1e-3  # [m]
+        sge['WV'] = sw['TZPGwV'].value*1e-3  # [m]
+        sge['offaxis'] = -sw['TZPGoffaxis'].value*1e-3  # [m]
+        sge['EXw'] = sw['EXw'].value*1e-6  # [m]
+        sge['IHFw'] = sw['IHFw'].value*1e-6  # [m]
+        sge['fVFM'] = sw['fVFM'].value  # [m]
+        sge['fHFM'] = sw['fHFM'].value  # [m]
+
+        d_nominal = wlD/np.sin(theta_grating)
+        sw['d_label'].value = (
+            f'Grating Pitch:{int(np.round(d_nominal*1e9))} nm')
+
+        # zone plate radius at the point further away from the optical axis
+        rn = np.sqrt((sge['WH']/2.0)**2 +
+                     (sge['WV']/2.0 + np.abs(sge['offaxis']))**2)
+        dr_nominal = wlD * F / (2*rn)
+        sw['dr_label'].value = (
+            f'Outer Zone Plate width dr:{int(np.round(dr_nominal*1e9))} nm')
+
+        # Optics properties (focal length and grating angle) for the
+        # low energy and high energy photon
+        F_L = 2*rn*dr_nominal/wlL
+        G_L = np.arcsin(wlL/d_nominal)
+        confL = {'Energy': 'L',
+                 'F': F_L,
+                 'theta_grating': G_L}
+        F_H = 2*rn*dr_nominal/wlH
+        G_H = np.arcsin(wlH/d_nominal)
+        confH = {'Energy': 'H',
+                 'F': F_H,
+                 'theta_grating': G_H}
+
+        # Configuration for imaging plane
+        sam = {'type': 'sam', 'z': sampleZ, 'incidence': samIncidence}
+        det = {'type': 'det', 'z': detectorZ, 'incidence': 0}
+
+        # update the beams
+        self.UpdateBeams(self.samBeamsL, sam, confL)
+        self.UpdateBeams(self.detBeamsL, det, confL)
+        self.UpdateBeams(self.samBeamsH, sam, confH)
+        self.UpdateBeams(self.detBeamsH, det, confH)
+
+        # update Spot Size Tables
+        for v in ['L', 'H']:
+            df = pd.DataFrame(self.SpotSizes['sam'][v],
+                              index=['F0G-1', 'F0G0', 'F0G1',
+                                     'F1G-1', 'F1G0', 'F1G1'],
+                              columns=['H (um)', 'V (um)'])
+            self.widgets[f'SpotSize{v}'].value = df.to_html(
+                float_format='{:.2f}'.format)
+
+        # update the detector
+        detXoff = self.widgets['detX'].value*1e-3  # [m]
+        detYoff = self.widgets['detY'].value*1e-3  # [m]
+        self.DetectorUpdate(detXoff, detYoff)
+
+        # update the sample
+        samw = self.widgets['samw'].value*1e-3  # [m]
+        samp = self.widgets['samp'].value*1e-3  # [m]
+        samXoff = self.widgets['samX'].value*1e-3  # [m]
+        samYoff = self.widgets['samY'].value*1e-3  # [m]
+        samthickness = self.widgets['samthickness'].value*1e-6  # [m]
+        samEtchAngle = np.deg2rad(self.widgets['samEtchAngle'].value)  # [rad]
+        self.SampleUpdate(samw, samp, samXoff, samYoff, samthickness,
+                          samIncidence, samEtchAngle)
+
+    def initWidgets(self):
+        """ Creates the necessary interactive widget controls.
+        """
+
+        style = {'description_width': 'initial'}
+        layout = {}  # max_width': '300px'}
+
+        self.Update = widgets.Button(
+            description='Update',
+        )
+
+        @self.Update.on_click
+        def plot_on_click(b):
+            self.UpdateFig()
+
+        self.widgets = {}
+
+        # Spot sizes
+        self.widgets['SpotSizeL'] = widgets.HTML()
+        self.widgets['SpotSizeH'] = widgets.HTML()
+        SpotSize = HBox([VBox([widgets.Label(value='Low energy'),
+                               self.widgets['SpotSizeL']]),
+                         VBox([
+                             widgets.Label(value='High energy'),
+                             self.widgets['SpotSizeH']])
+                         ])
+
+        # Source
+        self.widgets['EXw'] = widgets.BoundedIntText(
+            value=100,
+            min=0,
+            max=2000,
+            step=1,
+            description='Exit Slit (um):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['IHFw'] = widgets.BoundedIntText(
+            value=200,
+            min=0,
+            max=2000,
+            step=1,
+            description='IHF width (um):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['fVFM'] = widgets.BoundedFloatText(
+            value=0,
+            min=0,
+            max=10,
+            step=0.01,
+            description='VFM focal length (m):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['fHFM'] = widgets.BoundedFloatText(
+            value=0,
+            min=0,
+            max=10,
+            step=0.01,
+            description='HFM focal length (m):',
+            style=style,
+            layout=layout
+        )
+        SourceTab = VBox([
+            self.widgets['EXw'],
+            self.widgets['IHFw'],
+            self.widgets['fVFM'],
+            self.widgets['fHFM']])
+
+        # TZPG part
+        self.widgets['Type'] = widgets.Dropdown(
+            options=list(TZPG_db),
+            value='Custom',
+            description='Type:',
+            style=style,
+            disabled=False
+            )
+
+        def TZPGtype(change):
+            v = TZPG_db[change.new]
+            self.widgets['nrjD'].value = v['design_nrj']
+            self.widgets['TZPGwH'].value = v['TZPGwH']
+            self.widgets['TZPGwV'].value = v['TZPGwV']
+            self.widgets['TZPGoffaxis'].value = v['TZPGoffaxis']
+            self.widgets['grating'].value = v['grating']
+            self.widgets['F'].value = v['F']
+            # necessary to recompute grating pitch and outer zone plate width
+            self.UpdateFig()
+
+        self.widgets['Type'].observe(TZPGtype, names='value')
+
+        # hidden nominal zone plate focus
+        self.widgets['F'] = widgets.BoundedFloatText(
+            value=0.25,
+            min=0,
+            max=1
+        )
+
+        self.widgets['nrjL'] = widgets.BoundedIntText(
+            value=840,
+            min=450,
+            max=3200,
+            step=1,
+            description='Low:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['nrjH'] = widgets.BoundedIntText(
+            value=880,
+            min=450,
+            max=3200,
+            step=1,
+            description='High:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['nrjD'] = widgets.BoundedIntText(
+            value=860,
+            min=450,
+            max=3200,
+            step=1,
+            width=4,
+            description='Design:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['TZPGwH'] = widgets.BoundedFloatText(
+            value=1.0,
+            min=.1,
+            max=3.0,
+            step=0.05,
+            description='Height:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['TZPGwV'] = widgets.BoundedFloatText(
+            value=1.0,
+            min=.1,
+            max=3.0,
+            step=0.05,
+            description='Width:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['TZPGoffaxis'] = widgets.BoundedFloatText(
+            value=0.75,
+            min=.0,
+            max=2.0,
+            step=0.05,
+            description='Off axis (mm):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['grating'] = widgets.BoundedFloatText(
+            value=3.8,
+            min=1.,
+            max=10.0,
+            step=0.05,
+            description='Grating angle (mrad):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['dr_label'] = widgets.Label(value='dr')
+        self.widgets['d_label'] = widgets.Label(value='dr')
+        TZPGTab = VBox([
+            self.widgets['Type'],
+            HBox([self.widgets['nrjD'],
+                  self.widgets['grating'],
+                  self.widgets['TZPGoffaxis']]),
+            HBox([self.widgets['d_label'],
+                  self.widgets['dr_label']]),
+            HBox([widgets.Label(value='Energy range (eV):'),
+                  self.widgets['nrjL'], self.widgets['nrjH']]),
+            HBox([widgets.Label(value='TZPG (mm):'),
+                  self.widgets['TZPGwH'],
+                  self.widgets['TZPGwV']])
+            ])
+
+        # sample part
+        self.widgets['SAMZ'] = widgets.BoundedFloatText(
+            value=30.,
+            min=-10.,
+            max=180.0,
+            step=.1,
+            description='Sample Z (mm):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['samw'] = widgets.BoundedFloatText(
+            value=.5,
+            min=0.01,
+            max=2.0,
+            step=.01,
+            description='width:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['samp'] = widgets.BoundedFloatText(
+            value=1.0,
+            min=0.01,
+            max=2.0,
+            step=.01,
+            description='pitch:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['samX'] = widgets.BoundedFloatText(
+            value=0.,
+            min=-10,
+            max=10,
+            step=0.01,
+            description='X:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['samY'] = widgets.BoundedFloatText(
+            value=0.,
+            min=-10,
+            max=10,
+            step=0.01,
+            description='Y:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['samthickness'] = widgets.BoundedFloatText(
+            value=381,
+            min=1,
+            max=1000,
+            step=1,
+            description='Substrate thickness (um):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['samIncidence'] = widgets.BoundedFloatText(
+            value=0,
+            min=0,
+            max=90,
+            step=1,
+            description='Sample normal (deg):',
+            style=style,
+            layout=layout
+        )
+        self.widgets['samEtchAngle'] = widgets.BoundedFloatText(
+            value=54.74,
+            min=0,
+            max=90,
+            step=0.01,
+            description='Etch angle from surface (deg):',
+            style=style,
+            layout=layout
+        )
+        samTab = VBox([
+            self.widgets['SAMZ'],
+            HBox([widgets.Label(value='Membrane (mm), '),
+                  self.widgets['samw'],
+                  self.widgets['samp']]),
+            HBox([widgets.Label(value='Sample Offset (mm), '),
+                  self.widgets['samX'],
+                  self.widgets['samY']]),
+            self.widgets['samthickness'],
+            HBox([self.widgets['samIncidence'],
+                  self.widgets['samEtchAngle']])
+        ])
+
+        # Detector tab
+        self.widgets['detZ'] = widgets.BoundedFloatText(
+            value=2000.,
+            min=1000,
+            max=5800,
+            step=1,
+            description='Z:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['detX'] = widgets.BoundedFloatText(
+            value=20.,
+            min=-50,
+            max=50,
+            step=0.5,
+            description='X:',
+            style=style,
+            layout=layout
+        )
+        self.widgets['detY'] = widgets.BoundedFloatText(
+            value=0.,
+            min=-50,
+            max=50,
+            step=0.5,
+            description='Y:',
+            style=style,
+            layout=layout
+        )
+        detTab = VBox([HBox([widgets.Label(value='Detector (m), '),
+                             self.widgets['detZ'],
+                             self.widgets['detX'],
+                             self.widgets['detY']
+                             ])])
+
+        # combined tabs
+        tab0 = widgets.Accordion([SourceTab])
+        tab0.set_title(0, 'Source and KBS')
+        tab0.selected_index = 0
+
+        tab1 = widgets.Accordion([TZPGTab])
+        tab1.set_title(0, 'Beam splitting Off axis Zone plate')
+        tab1.selected_index = 0
+
+        tab2 = widgets.Accordion([samTab])
+        tab2.set_title(0, 'Sample')
+        tab2.selected_index = 0
+
+        tab3 = widgets.Accordion([detTab])
+        tab3.set_title(0, 'Detector')
+        tab3.selected_index = 0
+
+        tab4 = widgets.Accordion([SpotSize])
+        tab4.set_title(0, 'Spot sizes')
+        tab4.selected_index = 0
+
+        self.control = VBox([self.Update, tab0, tab1, tab2, tab3, tab4])
diff --git a/example/.gitkeep b/src/TZPGcalc/__init__.py
similarity index 100%
rename from example/.gitkeep
rename to src/TZPGcalc/__init__.py