text:
local system = require( "qt" ).system
-------------------------------------------------------------------------------
-- Dispatcher component (forwards timer events to a Lua closure)
-------------------------------------------------------------------------------

local Dispatcher = co.Component{
	name = 'qt.TimerDispatcher',
	provides = { callback = 'qt.ITimerCallback' },
}

function Dispatcher:onTimer( dt )
	self.closure( dt )
end

-------------------------------------------------------------------------------
-- qt.Timer class
-------------------------------------------------------------------------------
local Timer = {}

function Timer:__finalize()
	system:deleteTimer( self.timerId )
end

function Timer:start( msecs )
	system:startTimer( self.timerId, msecs )
end

function Timer:stop()
	system:stopTimer( self.timerId )
end

-- Timer class MT
local MT = { __gc = Timer.__finalize, __index = Timer }

-- module returns the Timer class constructor
return function( timerCallback )
	-- handle Lua closures by creating a dispatcher
	if type( timerCallback ) == 'function' then
		timerCallback = Dispatcher{ closure = timerCallback }.callback
	end
	local cookie = system:createTimer( timerCallback )
	return setmetatable( { timerId = cookie }, MT )
end


text:
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:colorControlActivated">#ffa70b</item>
        <item name="colorControlActivated">#ffa70b</item>
    </style>

    <style name="DisableElevation">
        <item name="android:zAdjustment">normal</item>
        <item name="android:translationZ">0dp</item>
        <item name="android:stateListAnimator">@null</item>
        <item name="android:elevation">0dp</item>
        <item name="android:shadowRadius">0</item>
        <item name="android:shadowDx">0</item>
        <item name="android:shadowDy">0</item>
        <item name="android:shadowColor">@android:color/transparent</item>
    </style>

    <style name="PreviewStyle" parent="DisableElevation">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_margin">10dp</item>
        <item name="android:textColor">#000</item>
    </style>

</resources>

redpajama_set_name: RedPajamaGithub


text:
/**
 * @class Ext.List
 * @extends Ext.DataView
 *
A mechanism for displaying data using a list layout template. List uses an {@link Ext.XTemplate}
 * as its internal templating mechanism, and is bound to an {@link Ext.data.Store} so that as the data
 * in the store changes the view is automatically updated to reflect the changes.

 *
The view also provides built-in behavior for many common events that can occur for its contained items
 * including itemtap, containertap, etc. as well as a built-in selection model. In order to use these
 * features, an {@link #itemSelector} config must be provided for the DataView to determine what nodes it
 * will be working with.

 *
 *
Useful Properties

 *

 *
{@link #itemTpl}

 *
{@link #store}

 *
{@link #grouped}

 *
{@link #indexBar}

 *
{@link #singleSelect}

 *
{@link #multiSelect}

 *

 *
 *
Useful Methods

 *

 *
{@link #bindStore}

 *
{@link #getRecord}

 *
{@link #getRecords}

 *
{@link #getSelectedRecords}

 *
{@link #getSelectedNodes}

 *
{@link #indexOf}

 *

 *
 *
Useful Events

 *

 *
{@link #itemtap}

 *
{@link #itemdoubletap}

 *
{@link #itemswipe}

 *
{@link #selectionchange}

 *

 *
 *
Screenshot:

 *
 * {@img Ext.List/screenshot.png Ext.List screenshot}
 *
 *
Example code:

 *

Ext.regModel('Contact', {
    fields: ['firstName', 'lastName']
});

var store = new Ext.data.JsonStore({
    model  : 'Contact',
    sorters: 'lastName',

    getGroupString : function(record) {
        return record.get('lastName')[0];
    },

    data: [
        {firstName: 'Tommy',   lastName: 'Maintz'},
        {firstName: 'Rob',     lastName: 'Dougan'},
        {firstName: 'Ed',      lastName: 'Spencer'},
        {firstName: 'Jamie',   lastName: 'Avins'},
        {firstName: 'Aaron',   lastName: 'Conran'},
        {firstName: 'Dave',    lastName: 'Kaneda'},
        {firstName: 'Michael', lastName: 'Mullany'},
        {firstName: 'Abraham', lastName: 'Elias'},
        {firstName: 'Jay',     lastName: 'Robinson'}
    ]
});

var list = new Ext.List({
    fullscreen: true,

    itemTpl : '{firstName} {lastName}',
    grouped : true,
    indexBar: true,

    store: store
});
list.show();

 * @constructor
 * Create a new List
 * @param {Object} config The config object
 * @xtype list
 */
Ext.List = Ext.extend(Ext.DataView, {
    componentCls: 'x-list',

    /**
     * @cfg {Boolean} pinHeaders
     * Whether or not to pin headers on top of item groups while scrolling for an iPhone native list experience.
     * Defaults to <tt>false</tt> on Android and Blackberry (for performance reasons)
     * Defaults to <tt>true</tt> on other devices.
     */
    pinHeaders: Ext.is.iOS || Ext.is.Desktop,

    /**
     * @cfg {Boolean/Object} indexBar
     * True to render an alphabet IndexBar docked on the right.
     * This can also be a config object that will be passed to {@link Ext.IndexBar}
     * (defaults to false)
     */
    indexBar: false,

    /**
     * @cfg {Boolean} grouped
     * True to group the list items together (defaults to false). When using grouping, you must specify a method getGroupString
     * on the store so that grouping can be maintained.
     *

Ext.regModel('Contact', {
    fields: ['firstName', 'lastName']
});

var store = new Ext.data.JsonStore({
    model  : 'Contact',
    sorters: 'lastName',

    getGroupString : function(record) {
        // Group by the last name
        return record.get('lastName')[0];
    },

    data: [
        {firstName: 'Tommy',   lastName: 'Maintz'},
        {firstName: 'Rob',     lastName: 'Dougan'},
        {firstName: 'Ed',      lastName: 'Spencer'},
        {firstName: 'Jamie',   lastName: 'Avins'},
        {firstName: 'Aaron',   lastName: 'Conran'},
        {firstName: 'Dave',    lastName: 'Kaneda'},
        {firstName: 'Michael', lastName: 'Mullany'},
        {firstName: 'Abraham', lastName: 'Elias'},
        {firstName: 'Jay',     lastName: 'Robinson'},
        {firstName: 'Tommy',   lastName: 'Maintz'},
        {firstName: 'Rob',     lastName: 'Dougan'},
        {firstName: 'Ed',      lastName: 'Spencer'},
        {firstName: 'Jamie',   lastName: 'Avins'},
        {firstName: 'Aaron',   lastName: 'Conran'},
        {firstName: 'Dave',    lastName: 'Kaneda'},
        {firstName: 'Michael', lastName: 'Mullany'},
        {firstName: 'Abraham', lastName: 'Elias'},
        {firstName: 'Jay',     lastName: 'Robinson'}
    ]
});

     */
    grouped: false,

    /**
     * @cfg {Boolean} clearSelectionOnDeactivate
     * True to clear any selections on the list when the list is deactivated (defaults to true).
     */
    clearSelectionOnDeactivate: true,

    renderTpl: [
        '<tpl if="grouped">

</tpl>'
    ],

    groupTpl : [
        '<tpl for=".">',
            '
',
                '
{group}
',
                '
',
                    '{items}',
                '
',
            '
',
        '</tpl>'
    ],

    /**
     * @cfg {String} itemSelector
     * @private
     * @ignore
     * Not to be used.
     */
    itemSelector: '.x-list-item',

    /**
     * @cfg {String} itemCls An additional class that will be added to each item in the List.
     * Defaults to ''.
     */
    itemCls: '',

    /**
     * @cfg {String/Array} itemTpl
     * The inner portion of the item template to be rendered. Follows an XTemplate
     * structure and will be placed inside of a tpl for in the tpl configuration.
     */

    /**
     * @cfg {Boolean/Function/Object} onItemDisclosure
     * True to display a disclosure icon on each list item.
     * This won't bind a listener to the tap event. The list
     * will still fire the disclose event though.
     * By setting this config to a function, it will automatically
     * add a tap event listeners to the disclosure buttons which
     * will fire your function.
     * Finally you can specify an object with a 'scope' and 'handler'
     * property defined. This will also be bound to the tap event listener
     * and is useful when you want to change the scope of the handler.
     */
    onItemDisclosure: false,

    /**
     * @cfg {Boolean} preventSelectionOnDisclose True to prevent the item selection when the user
     * taps a disclose icon. Defaults to <tt>true</tt>
     */
    preventSelectionOnDisclose: true,

    // @private
    initComponent : function() {
        //<deprecated since=0.99>
        if (Ext.isDefined(this.dockedItems)) {
            console.warn("List: List is not a Panel anymore so you can't dock items to it. Please put this list inside a Panel with layout 'fit'");
        }
        //</deprecated>

        //<deprecated since=0.99>
        if (Ext.isDefined(this.components)) {
            console.warn("List: The Experimental components configuration is not currently supported.");
        }
        //</deprecated>

        //<deprecated since=0.99>
        if (Ext.isDefined(this.disclosure)) {
            console.warn("List: The disclosure configuration has been renamed to onItemDisclosure and will be removed.");
            this.onItemDisclosure = this.disclosure;
        }
        //</deprecated>

        var memberFnsCombo = {};
        //<deprecated since=0.99>
        if (this.tpl) {
            console.warn('Ext.List: The tpl config has been removed and replaced by itemTpl. Please remove tpl and itemSelector from your Lists.');
            // convert from array to string
            if (Ext.isArray(this.tpl)) {
                this.tpl = this.tpl.join('');
            } else if (this.tpl.html) {
                Ext.apply(memberFnsCombo, this.tpl.initialConfig);
                this.tpl = this.tpl.html;
            }
            this.tpl = Ext.util.Format.trim(this.tpl);
            if (this.tpl.indexOf("\"x-list-item\"") !== -1) {
                throw new Error("Ext.List: Using a CSS class of x-list-item within your own tpl will break Ext.Lists. Remove the x-list-item from the tpl/itemTpl");
            }
            var tpl       = this.tpl,
                first     = '<tpl for=".">',
                firstLn   = first.length,
                end       = '</tpl>',
                tplFirst  = this.tpl.substr(0, firstLn),
                tplEndIdx = this.tpl.lastIndexOf(end),
                stripped;

            if (tplFirst === first &&  tplEndIdx !== -1) {
                this.itemTpl = tpl.substr(firstLn, tplEndIdx - firstLn);
                this.itemSelector = Ext.List.prototype.itemSelector;
            } else {
                throw new Error("Ext.List: tpl to itemTpl conversion failed.");
            }
        }
        //</deprecated>

        if (Ext.isArray(this.itemTpl)) {
            this.itemTpl = this.itemTpl.join('');
        } else if (this.itemTpl && this.itemTpl.html) {
            Ext.apply(memberFnsCombo, this.itemTpl.initialConfig);
            this.itemTpl = this.itemTpl.html;
        }

        //<debug>
        if (!Ext.isDefined(this.itemTpl)) {
            throw new Error("Ext.List: itemTpl is a required configuration.");
        }
        // this check is not enitrely fool proof, does not account for spaces or multiple classes
        // if the check is done without "s then things like x-list-item-entity would throw exceptions that shouldn't have.
        if (this.itemTpl && this.itemTpl.indexOf("\"x-list-item\"") !== -1) {
            throw new Error("Ext.List: Using a CSS class of x-list-item within your own tpl will break Ext.Lists. Remove the x-list-item from the tpl/itemTpl");
        }
        //</debug>

        this.tpl = '<tpl for=".">

' + this.itemTpl + '
';
        if (this.onItemDisclosure) {
            this.tpl += '

';
        }
        this.tpl += '
</tpl>';
        this.tpl = new Ext.XTemplate(this.tpl, memberFnsCombo);

        if (this.grouped) {

            this.listItemTpl = this.tpl;
            if (Ext.isString(this.listItemTpl) || Ext.isArray(this.listItemTpl)) {
                // memberFns will go away after removal of tpl configuration for itemTpl
                // this copies memberFns by storing the original configuration.
                this.listItemTpl = new Ext.XTemplate(this.listItemTpl, memberFnsCombo);
            }
            if (Ext.isString(this.groupTpl) || Ext.isArray(this.groupTpl)) {
                this.tpl = new Ext.XTemplate(this.groupTpl);
            }
        }
        else {
            this.indexBar = false;
        }

        if (this.scroll !== false) {
            this.scroll = {
                direction: 'vertical',
                useIndicators: !this.indexBar
            };
        }

        // if (this.enableAutoPaging) {
        //     this.enablePaging = true;
        // }

        Ext.List.superclass.initComponent.call(this);

        if (this.onItemDisclosure) {
            // disclosure can be a function that will be called when
            // you tap the disclosure button
            if (Ext.isFunction(this.onItemDisclosure)) {
                this.onItemDisclosure = {
                    scope: this,
                    handler: this.onItemDisclosure
                };
            }
        }

        this.on('deactivate', this.onDeactivate, this);

        this.addEvents(
             /**
              * @event disclose
              * Fires when the user taps the disclosure icon on an item
              * @param {Ext.data.Record} record The record associated with the item
              * @param {Ext.Element} node The wrapping element of this node
              * @param {Number} index The index of this list item
              * @param {Ext.util.Event} e The tap event that caused this disclose to fire
              */
             'disclose',

             /**
              * @event update
              * Fires whenever the contents of the List is updated.
              * @param {Ext.List} list This list
              */
             'update'
         );
    },

    // @private
    onRender : function() {
        if (this.grouped) {
            Ext.applyIf(this.renderData, {
                grouped: true
            });

            if (this.scroll) {
                Ext.applyIf(this.renderSelectors, {
                    header: '.x-list-header-swap'
                });
            }
        }

        Ext.List.superclass.onRender.apply(this, arguments);
    },

    // @private
    onDeactivate : function() {
        if (this.clearSelectionOnDeactivate) {
            this.getSelectionModel().deselectAll();
        }
    },

    // @private
    afterRender : function() {
        if (!this.grouped) {
            this.el.addCls('x-list-flat');
        }
        this.getTargetEl().addCls('x-list-parent');

        if (this.indexBar) {
            this.indexBar = new Ext.IndexBar(Ext.apply({}, Ext.isObject(this.indexBar) ? this.indexBar : {}, {
                xtype: 'indexbar',
                alphabet: true,
                renderTo: this.el
            }));
            this.addCls('x-list-indexed');
        }

        Ext.List.superclass.afterRender.call(this);

        if (this.onItemDisclosure) {
            this.mon(this.getTargetEl(), 'singletap', this.handleItemDisclosure, this, {delegate: '.x-list-disclosure'});
        }
    },

    // @private
    initEvents : function() {
        Ext.List.superclass.initEvents.call(this);

        if (this.grouped) {
            if (this.pinHeaders && this.scroll) {
                this.mon(this.scroller, {
                    scrollstart: this.onScrollStart,
                    scroll: this.onScroll,
                    scope: this
                });
            }

            if (this.indexBar) {
                this.mon(this.indexBar, {
                    index: this.onIndex,
                    scope: this
                });
            }
        }
    },

    //@private
    handleItemDisclosure : function(e, t) {
        var node = this.findItemByChild(t),
            record, index;

        if (node) {
            record = this.getRecord(node);
            index  = this.indexOf(node);
            if (this.preventSelectionOnDisclose) {
                e.stopEvent();
            }
            this.fireEvent('disclose', record, node, index, e);

            if (Ext.isObject(this.onItemDisclosure) && this.onItemDisclosure.handler) {
                this.onItemDisclosure.handler.call(this, record, node, index);
            }
        }
    },

    /**
     * Set the current active group
     * @param {Object} group The group to set active
     */
    setActiveGroup : function(group) {
        var me = this;
        if (group) {
            if (!me.activeGroup || me.activeGroup.header != group.header) {
                me.header.setHTML(group.header.getHTML());
                me.header.show();
            }
        }
        else {
            me.header.hide();
        }

        this.activeGroup = group;
    },

    // @private
    getClosestGroups : function(pos) {
        // force update if not already done
        if (!this.groupOffsets) {
            this.updateOffsets();
        }
        var groups = this.groupOffsets,
            ln = groups.length,
            group, i,
            current, next;

        for (i = 0; i < ln; i++) {
            group = groups[i];
            if (group.offset > pos.y) {
                next = group;
                break;
            }
            current = group;
        }

        return {
            current: current,
            next: next
        };
    },

    updateIndexes : function() {
        Ext.List.superclass.updateIndexes.apply(this, arguments);
        this.updateList();
    },

    afterComponentLayout : function() {
        Ext.List.superclass.afterComponentLayout.apply(this, arguments);
        this.updateList();
    },

    updateList : function() {
        this.fireEvent('update', this);
        this.updateOffsets();
    },

    updateOffsets : function() {
        if (this.grouped) {
            this.groupOffsets = [];

            var headers = this.getTargetEl().query('h3.x-list-header'),
                ln = headers.length,
                header, i;

            for (i = 0; i < ln; i++) {
                header = Ext.get(headers[i]);
                header.setVisibilityMode(Ext.Element.VISIBILITY);
                this.groupOffsets.push({
                    header: header,
                    offset: header.dom.offsetTop
                });
            }
        }
    },

    // @private
    onScrollStart : function() {
        var offset = this.scroller.getOffset();
        this.closest = this.getClosestGroups(offset);
        this.setActiveGroup(this.closest.current);
    },

    // @private
    onScroll : function(scroller, pos, options) {
        if (!this.closest) {
            this.closest = this.getClosestGroups(pos);
        }

        if (!this.headerHeight) {
            this.headerHeight = this.header.getHeight();
        }

        if (pos.y <= 0) {
            if (this.activeGroup) {
                this.setActiveGroup(false);
                this.closest.next = this.closest.current;
            }
            return;
        }
        else if (
            (this.closest.next && pos.y > this.closest.next.offset) ||
            (pos.y < this.closest.current.offset)
        ) {
            this.closest = this.getClosestGroups(pos);
            this.setActiveGroup(this.closest.current);
        }
        if (this.closest.next && pos.y > 0 && this.closest.next.offset - pos.y <= this.headerHeight) {
            var transform = this.headerHeight - (this.closest.next.offset - pos.y);
            Ext.Element.cssTranslate(this.header, {x: 0, y: -transform});
            this.transformed = true;
        }
        else if (this.transformed) {
            this.header.setStyle('-webkit-transform', null);
            this.transformed = false;
        }
    },

    // @private
    onIndex : function(record, target, index) {
        var key = record.get('key').toLowerCase(),
            groups = this.store.getGroups(),
            ln = groups.length,
            group, i, closest, id;

        for (i = 0; i < ln; i++) {
            group = groups[i];
            id = this.getGroupId(group);

            if (id == key || id > key) {
                closest = id;
                break;
            }
            else {
                closest = id;
            }
        }

        closest = this.getTargetEl().down('.x-group-' + id);
        if (closest) {
            this.scroller.scrollTo({x: 0, y: closest.getOffsetsTo(this.scrollEl)[1]}, false, null, true);
        }
    },

    getGroupId : function(group) {
        return group.name.toLowerCase();
    },

    // @private
    collectData : function(records, startIndex) {
        if (!this.grouped) {
            return Ext.List.superclass.collectData.call(this, records, startIndex);
        }

        var results = [],
            groups = this.store.getGroups(),
            ln = groups.length,
            children, cln, c,
            group, i;

        for (i = 0, ln = groups.length; i < ln; i++) {
            group = groups[i];
            children = group.children;
            for (c = 0, cln = children.length; c < cln; c++) {
                children[c] = children[c].data;
            }
            results.push({
                group: group.name,
                id: this.getGroupId(group),
                items: this.listItemTpl.apply(children)
            });
        }

        return results;
    },

    // Because the groups might change by an update/add/remove we refresh the whole dataview
    // in each one of them
    // @private
    onUpdate : function(store, record) {
        if (this.grouped) {
            this.refresh();
        }
        else {
            Ext.List.superclass.onUpdate.apply(this, arguments);
        }
    },

    // @private
    onAdd : function(ds, records, index) {
        if (this.grouped) {
            this.refresh();
        }
        else {
            Ext.List.superclass.onAdd.apply(this, arguments);
        }
    },

    // @private
    onRemove : function(ds, record, index) {
        if (this.grouped) {
            this.refresh();
        }
        else {
            Ext.List.superclass.onRemove.apply(this, arguments);
        }
    }
});

Ext.reg('list', Ext.List);


text:
namespace LoreSoft.Calculator
{
    partial class CalculatorForm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
      this.components = new System.ComponentModel.Container();
      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CalculatorForm));
      this.mainMenuStrip = new System.Windows.Forms.MenuStrip();
      this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
      this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
      this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
      this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.clearHistoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
      this.historyFontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.inputFontToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
      this.replaceCalculatorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.functionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.basicOperationsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.subtractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.multiplyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.divideToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.modulusToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.powerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
      this.sqrtToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.absToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.trigFunctionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.cosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.coshToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.acosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.sinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.sinhToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.asinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.tanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.tanhToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.atanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.logFunctionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.expToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.logToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.log10ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.conversionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.lengthToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.lengthDummyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.massToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.massDummyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.speedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.speedDummyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.temperatureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.temperatureDummyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.timeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.timeDummyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.volumeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.volumeDummyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.mainToolStrip = new System.Windows.Forms.ToolStrip();
      this.saveToolStripButton = new System.Windows.Forms.ToolStripButton();
      this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
      this.cutToolStripButton = new System.Windows.Forms.ToolStripButton();
      this.copyToolStripButton = new System.Windows.Forms.ToolStripButton();
      this.pasteToolStripButton = new System.Windows.Forms.ToolStripButton();
      this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
      this.undoToolStripButton = new System.Windows.Forms.ToolStripButton();
      this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
      this.clearHistoryToolStripButton = new System.Windows.Forms.ToolStripButton();
      this.historyPanel = new System.Windows.Forms.Panel();
      this.historyRichTextBox = new System.Windows.Forms.RichTextBox();
      this.historyContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
      this.clearHistoryContextStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
      this.copyHistoryContextStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
      this.historyLabel = new System.Windows.Forms.Label();
      this.inputLabel = new System.Windows.Forms.Label();
      this.inputTextBox = new System.Windows.Forms.TextBox();
      this.inputContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
      this.undoContextStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
      this.cutContextStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.copyContextStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.pasteContextStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
      this.selectAllContextStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.statusStrip = new System.Windows.Forms.StatusStrip();
      this.answerToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
      this.timerToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
      this.numLockToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
      this.fontDialog = new System.Windows.Forms.FontDialog();
      this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
      this.allowOnlyOneInstanceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
      this.mainMenuStrip.SuspendLayout();
      this.mainToolStrip.SuspendLayout();
      this.historyPanel.SuspendLayout();
      this.historyContextMenuStrip.SuspendLayout();
      this.inputContextMenuStrip.SuspendLayout();
      this.statusStrip.SuspendLayout();
      this.SuspendLayout();
      //
      // mainMenuStrip
      //
      this.mainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.fileToolStripMenuItem,
            this.editToolStripMenuItem,
            this.optionsToolStripMenuItem,
            this.functionsToolStripMenuItem,
            this.conversionsToolStripMenuItem,
            this.helpToolStripMenuItem});
      this.mainMenuStrip.Location = new System.Drawing.Point(0, 0);
      this.mainMenuStrip.Name = "mainMenuStrip";
      this.mainMenuStrip.Size = new System.Drawing.Size(384, 24);
      this.mainMenuStrip.TabIndex = 0;
      this.mainMenuStrip.Text = "menuStrip1";
      //
      // fileToolStripMenuItem
      //
      this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.saveToolStripMenuItem,
            this.toolStripSeparator1,
            this.exitToolStripMenuItem});
      this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
      this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
      this.fileToolStripMenuItem.Text = "&File";
      //
      // saveToolStripMenuItem
      //
      this.saveToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Save;
      this.saveToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
      this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
      this.saveToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
      this.saveToolStripMenuItem.Text = "&Save History";
      this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
      //
      // toolStripSeparator1
      //
      this.toolStripSeparator1.Name = "toolStripSeparator1";
      this.toolStripSeparator1.Size = new System.Drawing.Size(176, 6);
      //
      // exitToolStripMenuItem
      //
      this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
      this.exitToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
      this.exitToolStripMenuItem.Text = "E&xit";
      this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
      //
      // editToolStripMenuItem
      //
      this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.undoToolStripMenuItem,
            this.toolStripSeparator3,
            this.cutToolStripMenuItem,
            this.copyToolStripMenuItem,
            this.pasteToolStripMenuItem,
            this.toolStripSeparator4,
            this.selectAllToolStripMenuItem});
      this.editToolStripMenuItem.Name = "editToolStripMenuItem";
      this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
      this.editToolStripMenuItem.Text = "&Edit";
      //
      // undoToolStripMenuItem
      //
      this.undoToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Undo;
      this.undoToolStripMenuItem.Name = "undoToolStripMenuItem";
      this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
      this.undoToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.undoToolStripMenuItem.Text = "&Undo";
      this.undoToolStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click);
      //
      // toolStripSeparator3
      //
      this.toolStripSeparator3.Name = "toolStripSeparator3";
      this.toolStripSeparator3.Size = new System.Drawing.Size(161, 6);
      //
      // cutToolStripMenuItem
      //
      this.cutToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Cut;
      this.cutToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.cutToolStripMenuItem.Name = "cutToolStripMenuItem";
      this.cutToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
      this.cutToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.cutToolStripMenuItem.Text = "Cu&t";
      this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click);
      //
      // copyToolStripMenuItem
      //
      this.copyToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Copy;
      this.copyToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
      this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
      this.copyToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.copyToolStripMenuItem.Text = "&Copy";
      this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
      //
      // pasteToolStripMenuItem
      //
      this.pasteToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Paste;
      this.pasteToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
      this.pasteToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
      this.pasteToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.pasteToolStripMenuItem.Text = "&Paste";
      this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click);
      //
      // toolStripSeparator4
      //
      this.toolStripSeparator4.Name = "toolStripSeparator4";
      this.toolStripSeparator4.Size = new System.Drawing.Size(161, 6);
      //
      // selectAllToolStripMenuItem
      //
      this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
      this.selectAllToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A)));
      this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.selectAllToolStripMenuItem.Text = "Select &All";
      this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click);
      //
      // optionsToolStripMenuItem
      //
      this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.clearHistoryToolStripMenuItem,
            this.toolStripSeparator6,
            this.historyFontToolStripMenuItem,
            this.inputFontToolStripMenuItem,
            this.toolStripSeparator10,
            this.replaceCalculatorToolStripMenuItem,
            this.allowOnlyOneInstanceToolStripMenuItem});
      this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
      this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20);
      this.optionsToolStripMenuItem.Text = "&Options";
      //
      // clearHistoryToolStripMenuItem
      //
      this.clearHistoryToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Delete;
      this.clearHistoryToolStripMenuItem.Name = "clearHistoryToolStripMenuItem";
      this.clearHistoryToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D)));
      this.clearHistoryToolStripMenuItem.Size = new System.Drawing.Size(204, 22);
      this.clearHistoryToolStripMenuItem.Text = "&Clear History";
      this.clearHistoryToolStripMenuItem.Click += new System.EventHandler(this.clearHistoryToolStripMenuItem_Click);
      //
      // toolStripSeparator6
      //
      this.toolStripSeparator6.Name = "toolStripSeparator6";
      this.toolStripSeparator6.Size = new System.Drawing.Size(201, 6);
      //
      // historyFontToolStripMenuItem
      //
      this.historyFontToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Font;
      this.historyFontToolStripMenuItem.Name = "historyFontToolStripMenuItem";
      this.historyFontToolStripMenuItem.Size = new System.Drawing.Size(204, 22);
      this.historyFontToolStripMenuItem.Text = "&History Font...";
      this.historyFontToolStripMenuItem.Click += new System.EventHandler(this.historyFontToolStripMenuItem_Click);
      //
      // inputFontToolStripMenuItem
      //
      this.inputFontToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Font;
      this.inputFontToolStripMenuItem.Name = "inputFontToolStripMenuItem";
      this.inputFontToolStripMenuItem.Size = new System.Drawing.Size(204, 22);
      this.inputFontToolStripMenuItem.Text = "&Input Font...";
      this.inputFontToolStripMenuItem.Click += new System.EventHandler(this.inputFontToolStripMenuItem_Click);
      //
      // toolStripSeparator10
      //
      this.toolStripSeparator10.Name = "toolStripSeparator10";
      this.toolStripSeparator10.Size = new System.Drawing.Size(201, 6);
      //
      // replaceCalculatorToolStripMenuItem
      //
      this.replaceCalculatorToolStripMenuItem.CheckOnClick = true;
      this.replaceCalculatorToolStripMenuItem.Name = "replaceCalculatorToolStripMenuItem";
      this.replaceCalculatorToolStripMenuItem.Size = new System.Drawing.Size(204, 22);
      this.replaceCalculatorToolStripMenuItem.Text = "&Replace Calculator";
      this.replaceCalculatorToolStripMenuItem.Click += new System.EventHandler(this.replaceCalculatorToolStripMenuItem_Click);
      //
      // functionsToolStripMenuItem
      //
      this.functionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.basicOperationsToolStripMenuItem,
            this.trigFunctionsToolStripMenuItem,
            this.logFunctionsToolStripMenuItem});
      this.functionsToolStripMenuItem.Name = "functionsToolStripMenuItem";
      this.functionsToolStripMenuItem.Size = new System.Drawing.Size(71, 20);
      this.functionsToolStripMenuItem.Text = "F&unctions";
      //
      // basicOperationsToolStripMenuItem
      //
      this.basicOperationsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.addToolStripMenuItem,
            this.subtractToolStripMenuItem,
            this.multiplyToolStripMenuItem,
            this.divideToolStripMenuItem,
            this.modulusToolStripMenuItem,
            this.powerToolStripMenuItem,
            this.toolStripSeparator11,
            this.sqrtToolStripMenuItem,
            this.absToolStripMenuItem});
      this.basicOperationsToolStripMenuItem.Name = "basicOperationsToolStripMenuItem";
      this.basicOperationsToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
      this.basicOperationsToolStripMenuItem.Text = "Basic Operations";
      //
      // addToolStripMenuItem
      //
      this.addToolStripMenuItem.Name = "addToolStripMenuItem";
      this.addToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.addToolStripMenuItem.Tag = "+";
      this.addToolStripMenuItem.Text = "add";
      this.addToolStripMenuItem.ToolTipText = "Adds two numbers.";
      this.addToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // subtractToolStripMenuItem
      //
      this.subtractToolStripMenuItem.Name = "subtractToolStripMenuItem";
      this.subtractToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.subtractToolStripMenuItem.Tag = "-";
      this.subtractToolStripMenuItem.Text = "subtract";
      this.subtractToolStripMenuItem.ToolTipText = "Subtracts two numbers ";
      this.subtractToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // multiplyToolStripMenuItem
      //
      this.multiplyToolStripMenuItem.Name = "multiplyToolStripMenuItem";
      this.multiplyToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.multiplyToolStripMenuItem.Tag = "*";
      this.multiplyToolStripMenuItem.Text = "multiply";
      this.multiplyToolStripMenuItem.ToolTipText = "Multiplies two numbers.";
      this.multiplyToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // divideToolStripMenuItem
      //
      this.divideToolStripMenuItem.Name = "divideToolStripMenuItem";
      this.divideToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.divideToolStripMenuItem.Tag = "/";
      this.divideToolStripMenuItem.Text = "divide";
      this.divideToolStripMenuItem.ToolTipText = "Divides two numbers.";
      this.divideToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // modulusToolStripMenuItem
      //
      this.modulusToolStripMenuItem.Name = "modulusToolStripMenuItem";
      this.modulusToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.modulusToolStripMenuItem.Tag = "%";
      this.modulusToolStripMenuItem.Text = "modulus";
      this.modulusToolStripMenuItem.ToolTipText = "Divides two numbers and returns only the remainder.";
      this.modulusToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // powerToolStripMenuItem
      //
      this.powerToolStripMenuItem.Name = "powerToolStripMenuItem";
      this.powerToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.powerToolStripMenuItem.Tag = "^";
      this.powerToolStripMenuItem.Text = "power";
      this.powerToolStripMenuItem.ToolTipText = "Raises a number to the power of another number.";
      this.powerToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // toolStripSeparator11
      //
      this.toolStripSeparator11.Name = "toolStripSeparator11";
      this.toolStripSeparator11.Size = new System.Drawing.Size(118, 6);
      //
      // sqrtToolStripMenuItem
      //
      this.sqrtToolStripMenuItem.Name = "sqrtToolStripMenuItem";
      this.sqrtToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.sqrtToolStripMenuItem.Tag = "sqrt(|)";
      this.sqrtToolStripMenuItem.Text = "sqrt";
      this.sqrtToolStripMenuItem.ToolTipText = "Returns the square root of a specified number.";
      this.sqrtToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // absToolStripMenuItem
      //
      this.absToolStripMenuItem.Name = "absToolStripMenuItem";
      this.absToolStripMenuItem.Size = new System.Drawing.Size(121, 22);
      this.absToolStripMenuItem.Tag = "abs(|)";
      this.absToolStripMenuItem.Text = "abs";
      this.absToolStripMenuItem.ToolTipText = "Returns the absolute value of a specified number. ";
      this.absToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // trigFunctionsToolStripMenuItem
      //
      this.trigFunctionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.cosToolStripMenuItem,
            this.coshToolStripMenuItem,
            this.acosToolStripMenuItem,
            this.sinToolStripMenuItem,
            this.sinhToolStripMenuItem,
            this.asinToolStripMenuItem,
            this.tanToolStripMenuItem,
            this.tanhToolStripMenuItem,
            this.atanToolStripMenuItem});
      this.trigFunctionsToolStripMenuItem.Name = "trigFunctionsToolStripMenuItem";
      this.trigFunctionsToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
      this.trigFunctionsToolStripMenuItem.Text = "Trig Functions";
      //
      // cosToolStripMenuItem
      //
      this.cosToolStripMenuItem.Name = "cosToolStripMenuItem";
      this.cosToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.cosToolStripMenuItem.Tag = "cos(|)";
      this.cosToolStripMenuItem.Text = "cos";
      this.cosToolStripMenuItem.ToolTipText = "Returns the cosine of the specified angle.";
      this.cosToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // coshToolStripMenuItem
      //
      this.coshToolStripMenuItem.Name = "coshToolStripMenuItem";
      this.coshToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.coshToolStripMenuItem.Tag = "cosh(|)";
      this.coshToolStripMenuItem.Text = "cosh";
      this.coshToolStripMenuItem.ToolTipText = "Returns the hyperbolic cosine of the specified angle. ";
      this.coshToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // acosToolStripMenuItem
      //
      this.acosToolStripMenuItem.Name = "acosToolStripMenuItem";
      this.acosToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.acosToolStripMenuItem.Tag = "acos(|)";
      this.acosToolStripMenuItem.Text = "acos";
      this.acosToolStripMenuItem.ToolTipText = "Returns the angle whose cosine is the specified number.";
      this.acosToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // sinToolStripMenuItem
      //
      this.sinToolStripMenuItem.Name = "sinToolStripMenuItem";
      this.sinToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.sinToolStripMenuItem.Tag = "sin(|)";
      this.sinToolStripMenuItem.Text = "sin";
      this.sinToolStripMenuItem.ToolTipText = "Returns the sine of the specified angle. ";
      this.sinToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // sinhToolStripMenuItem
      //
      this.sinhToolStripMenuItem.Name = "sinhToolStripMenuItem";
      this.sinhToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.sinhToolStripMenuItem.Tag = "sinh(|)";
      this.sinhToolStripMenuItem.Text = "sinh";
      this.sinhToolStripMenuItem.ToolTipText = "Returns the hyperbolic sine of the specified angle.";
      this.sinhToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // asinToolStripMenuItem
      //
      this.asinToolStripMenuItem.Name = "asinToolStripMenuItem";
      this.asinToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.asinToolStripMenuItem.Tag = "asin(|)";
      this.asinToolStripMenuItem.Text = "asin";
      this.asinToolStripMenuItem.ToolTipText = "Returns the angle whose sine is the specified number.";
      this.asinToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // tanToolStripMenuItem
      //
      this.tanToolStripMenuItem.Name = "tanToolStripMenuItem";
      this.tanToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.tanToolStripMenuItem.Tag = "tan(|)";
      this.tanToolStripMenuItem.Text = "tan";
      this.tanToolStripMenuItem.ToolTipText = "Returns the tangent of the specified angle.";
      this.tanToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // tanhToolStripMenuItem
      //
      this.tanhToolStripMenuItem.Name = "tanhToolStripMenuItem";
      this.tanhToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.tanhToolStripMenuItem.Tag = "tanh(|)";
      this.tanhToolStripMenuItem.Text = "tanh";
      this.tanhToolStripMenuItem.ToolTipText = "Returns the hyperbolic tangent of the specified angle.";
      this.tanhToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // atanToolStripMenuItem
      //
      this.atanToolStripMenuItem.Name = "atanToolStripMenuItem";
      this.atanToolStripMenuItem.Size = new System.Drawing.Size(99, 22);
      this.atanToolStripMenuItem.Tag = "atan(|)";
      this.atanToolStripMenuItem.Text = "atan";
      this.atanToolStripMenuItem.ToolTipText = "Returns the angle whose tangent is the specified number.";
      this.atanToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // logFunctionsToolStripMenuItem
      //
      this.logFunctionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.expToolStripMenuItem,
            this.logToolStripMenuItem,
            this.log10ToolStripMenuItem});
      this.logFunctionsToolStripMenuItem.Name = "logFunctionsToolStripMenuItem";
      this.logFunctionsToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
      this.logFunctionsToolStripMenuItem.Text = "Log Functions";
      //
      // expToolStripMenuItem
      //
      this.expToolStripMenuItem.Name = "expToolStripMenuItem";
      this.expToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
      this.expToolStripMenuItem.Tag = "exp(|)";
      this.expToolStripMenuItem.Text = "exp";
      this.expToolStripMenuItem.ToolTipText = "Returns e raised to the specified power.";
      this.expToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // logToolStripMenuItem
      //
      this.logToolStripMenuItem.Name = "logToolStripMenuItem";
      this.logToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
      this.logToolStripMenuItem.Tag = "log(|)";
      this.logToolStripMenuItem.Text = "log";
      this.logToolStripMenuItem.ToolTipText = "Returns the logarithm of a specified number.";
      this.logToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // log10ToolStripMenuItem
      //
      this.log10ToolStripMenuItem.Name = "log10ToolStripMenuItem";
      this.log10ToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
      this.log10ToolStripMenuItem.Tag = "log10(|)";
      this.log10ToolStripMenuItem.Text = "log10";
      this.log10ToolStripMenuItem.ToolTipText = "Returns the base 10 logarithm of a specified number.";
      this.log10ToolStripMenuItem.Click += new System.EventHandler(this.function_Click);
      //
      // conversionsToolStripMenuItem
      //
      this.conversionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.lengthToolStripMenuItem,
            this.massToolStripMenuItem,
            this.speedToolStripMenuItem,
            this.temperatureToolStripMenuItem,
            this.timeToolStripMenuItem,
            this.volumeToolStripMenuItem});
      this.conversionsToolStripMenuItem.Name = "conversionsToolStripMenuItem";
      this.conversionsToolStripMenuItem.Size = new System.Drawing.Size(84, 20);
      this.conversionsToolStripMenuItem.Text = "&Conversions";
      //
      // lengthToolStripMenuItem
      //
      this.lengthToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.lengthDummyToolStripMenuItem});
      this.lengthToolStripMenuItem.Name = "lengthToolStripMenuItem";
      this.lengthToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
      this.lengthToolStripMenuItem.Text = "&Length";
      this.lengthToolStripMenuItem.DropDownOpening += new System.EventHandler(this.lengthToolStripMenuItem_DropDownOpening);
      //
      // lengthDummyToolStripMenuItem
      //
      this.lengthDummyToolStripMenuItem.Name = "lengthDummyToolStripMenuItem";
      this.lengthDummyToolStripMenuItem.Size = new System.Drawing.Size(157, 22);
      this.lengthDummyToolStripMenuItem.Text = "Length Dummy";
      //
      // massToolStripMenuItem
      //
      this.massToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.massDummyToolStripMenuItem});
      this.massToolStripMenuItem.Name = "massToolStripMenuItem";
      this.massToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
      this.massToolStripMenuItem.Text = "&Mass";
      this.massToolStripMenuItem.DropDownOpening += new System.EventHandler(this.massToolStripMenuItem_DropDownOpening);
      //
      // massDummyToolStripMenuItem
      //
      this.massDummyToolStripMenuItem.Name = "massDummyToolStripMenuItem";
      this.massDummyToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
      this.massDummyToolStripMenuItem.Text = "Mass Dummy";
      //
      // speedToolStripMenuItem
      //
      this.speedToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.speedDummyToolStripMenuItem});
      this.speedToolStripMenuItem.Name = "speedToolStripMenuItem";
      this.speedToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
      this.speedToolStripMenuItem.Text = "&Speed";
      this.speedToolStripMenuItem.DropDownOpening += new System.EventHandler(this.speedToolStripMenuItem_DropDownOpening);
      //
      // speedDummyToolStripMenuItem
      //
      this.speedDummyToolStripMenuItem.Name = "speedDummyToolStripMenuItem";
      this.speedDummyToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
      this.speedDummyToolStripMenuItem.Text = "Speed Dummy";
      //
      // temperatureToolStripMenuItem
      //
      this.temperatureToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.temperatureDummyToolStripMenuItem});
      this.temperatureToolStripMenuItem.Name = "temperatureToolStripMenuItem";
      this.temperatureToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
      this.temperatureToolStripMenuItem.Text = "Tem&perature";
      this.temperatureToolStripMenuItem.DropDownOpening += new System.EventHandler(this.temperatureToolStripMenuItem_DropDownOpening);
      //
      // temperatureDummyToolStripMenuItem
      //
      this.temperatureDummyToolStripMenuItem.Name = "temperatureDummyToolStripMenuItem";
      this.temperatureDummyToolStripMenuItem.Size = new System.Drawing.Size(188, 22);
      this.temperatureDummyToolStripMenuItem.Text = "Temperature Dummy";
      //
      // timeToolStripMenuItem
      //
      this.timeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.timeDummyToolStripMenuItem});
      this.timeToolStripMenuItem.Name = "timeToolStripMenuItem";
      this.timeToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
      this.timeToolStripMenuItem.Text = "&Time";
      this.timeToolStripMenuItem.DropDownOpening += new System.EventHandler(this.timeToolStripMenuItem_DropDownOpening);
      //
      // timeDummyToolStripMenuItem
      //
      this.timeDummyToolStripMenuItem.Name = "timeDummyToolStripMenuItem";
      this.timeDummyToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
      this.timeDummyToolStripMenuItem.Text = "Time Dummy";
      //
      // volumeToolStripMenuItem
      //
      this.volumeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.volumeDummyToolStripMenuItem});
      this.volumeToolStripMenuItem.Name = "volumeToolStripMenuItem";
      this.volumeToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
      this.volumeToolStripMenuItem.Text = "&Volume";
      this.volumeToolStripMenuItem.DropDownOpening += new System.EventHandler(this.volumeToolStripMenuItem_DropDownOpening);
      //
      // volumeDummyToolStripMenuItem
      //
      this.volumeDummyToolStripMenuItem.Name = "volumeDummyToolStripMenuItem";
      this.volumeDummyToolStripMenuItem.Size = new System.Drawing.Size(161, 22);
      this.volumeDummyToolStripMenuItem.Text = "Volume Dummy";
      //
      // helpToolStripMenuItem
      //
      this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.aboutToolStripMenuItem});
      this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
      this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
      this.helpToolStripMenuItem.Text = "&Help";
      //
      // aboutToolStripMenuItem
      //
      this.aboutToolStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Help;
      this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
      this.aboutToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
      this.aboutToolStripMenuItem.Text = "&About...";
      this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
      //
      // mainToolStrip
      //
      this.mainToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.saveToolStripButton,
            this.toolStripSeparator,
            this.cutToolStripButton,
            this.copyToolStripButton,
            this.pasteToolStripButton,
            this.toolStripSeparator5,
            this.undoToolStripButton,
            this.toolStripSeparator7,
            this.clearHistoryToolStripButton});
      this.mainToolStrip.Location = new System.Drawing.Point(0, 24);
      this.mainToolStrip.Name = "mainToolStrip";
      this.mainToolStrip.Size = new System.Drawing.Size(384, 25);
      this.mainToolStrip.TabIndex = 1;
      this.mainToolStrip.Text = "toolStrip1";
      //
      // saveToolStripButton
      //
      this.saveToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
      this.saveToolStripButton.Image = global::LoreSoft.Calculator.Properties.Resources.Save;
      this.saveToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.saveToolStripButton.Name = "saveToolStripButton";
      this.saveToolStripButton.Size = new System.Drawing.Size(23, 22);
      this.saveToolStripButton.Text = "&Save History";
      this.saveToolStripButton.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
      //
      // toolStripSeparator
      //
      this.toolStripSeparator.Name = "toolStripSeparator";
      this.toolStripSeparator.Size = new System.Drawing.Size(6, 25);
      //
      // cutToolStripButton
      //
      this.cutToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
      this.cutToolStripButton.Image = global::LoreSoft.Calculator.Properties.Resources.Cut;
      this.cutToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.cutToolStripButton.Name = "cutToolStripButton";
      this.cutToolStripButton.Size = new System.Drawing.Size(23, 22);
      this.cutToolStripButton.Text = "C&ut";
      this.cutToolStripButton.Click += new System.EventHandler(this.cutToolStripMenuItem_Click);
      //
      // copyToolStripButton
      //
      this.copyToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
      this.copyToolStripButton.Image = global::LoreSoft.Calculator.Properties.Resources.Copy;
      this.copyToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.copyToolStripButton.Name = "copyToolStripButton";
      this.copyToolStripButton.Size = new System.Drawing.Size(23, 22);
      this.copyToolStripButton.Text = "&Copy";
      this.copyToolStripButton.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
      //
      // pasteToolStripButton
      //
      this.pasteToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
      this.pasteToolStripButton.Image = global::LoreSoft.Calculator.Properties.Resources.Paste;
      this.pasteToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.pasteToolStripButton.Name = "pasteToolStripButton";
      this.pasteToolStripButton.Size = new System.Drawing.Size(23, 22);
      this.pasteToolStripButton.Text = "&Paste";
      this.pasteToolStripButton.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click);
      //
      // toolStripSeparator5
      //
      this.toolStripSeparator5.Name = "toolStripSeparator5";
      this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25);
      //
      // undoToolStripButton
      //
      this.undoToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
      this.undoToolStripButton.Image = global::LoreSoft.Calculator.Properties.Resources.Undo;
      this.undoToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.undoToolStripButton.Name = "undoToolStripButton";
      this.undoToolStripButton.Size = new System.Drawing.Size(23, 22);
      this.undoToolStripButton.Text = "&Undo";
      this.undoToolStripButton.Click += new System.EventHandler(this.undoToolStripMenuItem_Click);
      //
      // toolStripSeparator7
      //
      this.toolStripSeparator7.Name = "toolStripSeparator7";
      this.toolStripSeparator7.Size = new System.Drawing.Size(6, 25);
      //
      // clearHistoryToolStripButton
      //
      this.clearHistoryToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
      this.clearHistoryToolStripButton.Image = global::LoreSoft.Calculator.Properties.Resources.Delete;
      this.clearHistoryToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.clearHistoryToolStripButton.Name = "clearHistoryToolStripButton";
      this.clearHistoryToolStripButton.Size = new System.Drawing.Size(23, 22);
      this.clearHistoryToolStripButton.Text = "&Clear History";
      this.clearHistoryToolStripButton.Click += new System.EventHandler(this.clearHistoryToolStripMenuItem_Click);
      //
      // historyPanel
      //
      this.historyPanel.Controls.Add(this.historyRichTextBox);
      this.historyPanel.Controls.Add(this.historyLabel);
      this.historyPanel.Dock = System.Windows.Forms.DockStyle.Fill;
      this.historyPanel.Location = new System.Drawing.Point(0, 49);
      this.historyPanel.Name = "historyPanel";
      this.historyPanel.Size = new System.Drawing.Size(384, 200);
      this.historyPanel.TabIndex = 5;
      //
      // historyRichTextBox
      //
      this.historyRichTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
      this.historyRichTextBox.ContextMenuStrip = this.historyContextMenuStrip;
      this.historyRichTextBox.DetectUrls = false;
      this.historyRichTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
      this.historyRichTextBox.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      this.historyRichTextBox.Location = new System.Drawing.Point(0, 23);
      this.historyRichTextBox.Margin = new System.Windows.Forms.Padding(5);
      this.historyRichTextBox.Name = "historyRichTextBox";
      this.historyRichTextBox.ReadOnly = true;
      this.historyRichTextBox.Size = new System.Drawing.Size(384, 177);
      this.historyRichTextBox.TabIndex = 1;
      this.historyRichTextBox.Text = "";
      //
      // historyContextMenuStrip
      //
      this.historyContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.clearHistoryContextStripMenuItem,
            this.toolStripSeparator9,
            this.copyHistoryContextStripMenuItem2});
      this.historyContextMenuStrip.Name = "historyContextMenuStrip";
      this.historyContextMenuStrip.Size = new System.Drawing.Size(185, 54);
      //
      // clearHistoryContextStripMenuItem
      //
      this.clearHistoryContextStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Delete;
      this.clearHistoryContextStripMenuItem.Name = "clearHistoryContextStripMenuItem";
      this.clearHistoryContextStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D)));
      this.clearHistoryContextStripMenuItem.Size = new System.Drawing.Size(184, 22);
      this.clearHistoryContextStripMenuItem.Text = "&Clear History";
      this.clearHistoryContextStripMenuItem.Click += new System.EventHandler(this.clearHistoryToolStripMenuItem_Click);
      //
      // toolStripSeparator9
      //
      this.toolStripSeparator9.Name = "toolStripSeparator9";
      this.toolStripSeparator9.Size = new System.Drawing.Size(181, 6);
      //
      // copyHistoryContextStripMenuItem2
      //
      this.copyHistoryContextStripMenuItem2.Image = global::LoreSoft.Calculator.Properties.Resources.Copy;
      this.copyHistoryContextStripMenuItem2.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.copyHistoryContextStripMenuItem2.Name = "copyHistoryContextStripMenuItem2";
      this.copyHistoryContextStripMenuItem2.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
      this.copyHistoryContextStripMenuItem2.Size = new System.Drawing.Size(184, 22);
      this.copyHistoryContextStripMenuItem2.Text = "&Copy";
      this.copyHistoryContextStripMenuItem2.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
      //
      // historyLabel
      //
      this.historyLabel.BackColor = System.Drawing.Color.LightSlateGray;
      this.historyLabel.Dock = System.Windows.Forms.DockStyle.Top;
      this.historyLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      this.historyLabel.ForeColor = System.Drawing.SystemColors.HighlightText;
      this.historyLabel.Location = new System.Drawing.Point(0, 0);
      this.historyLabel.Name = "historyLabel";
      this.historyLabel.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
      this.historyLabel.Size = new System.Drawing.Size(384, 23);
      this.historyLabel.TabIndex = 0;
      this.historyLabel.Text = "History";
      this.historyLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
      //
      // inputLabel
      //
      this.inputLabel.BackColor = System.Drawing.Color.LightSlateGray;
      this.inputLabel.Dock = System.Windows.Forms.DockStyle.Bottom;
      this.inputLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      this.inputLabel.ForeColor = System.Drawing.SystemColors.HighlightText;
      this.inputLabel.Location = new System.Drawing.Point(0, 249);
      this.inputLabel.Name = "inputLabel";
      this.inputLabel.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0);
      this.inputLabel.Size = new System.Drawing.Size(384, 23);
      this.inputLabel.TabIndex = 2;
      this.inputLabel.Text = "Input";
      this.inputLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
      //
      // inputTextBox
      //
      this.inputTextBox.ContextMenuStrip = this.inputContextMenuStrip;
      this.inputTextBox.Dock = System.Windows.Forms.DockStyle.Bottom;
      this.inputTextBox.Font = new System.Drawing.Font("Consolas", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      this.inputTextBox.Location = new System.Drawing.Point(0, 272);
      this.inputTextBox.Name = "inputTextBox";
      this.inputTextBox.Size = new System.Drawing.Size(384, 30);
      this.inputTextBox.TabIndex = 3;
      this.inputTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.inputTextBox_KeyDown);
      this.inputTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.inputTextBox_KeyPress);
      //
      // inputContextMenuStrip
      //
      this.inputContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.undoContextStripMenuItem,
            this.toolStripSeparator2,
            this.cutContextStripMenuItem,
            this.copyContextStripMenuItem,
            this.pasteContextStripMenuItem,
            this.toolStripSeparator8,
            this.selectAllContextStripMenuItem});
      this.inputContextMenuStrip.Name = "inputContextMenuStrip";
      this.inputContextMenuStrip.Size = new System.Drawing.Size(165, 126);
      //
      // undoContextStripMenuItem
      //
      this.undoContextStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Undo;
      this.undoContextStripMenuItem.Name = "undoContextStripMenuItem";
      this.undoContextStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
      this.undoContextStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.undoContextStripMenuItem.Text = "&Undo";
      this.undoContextStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click);
      //
      // toolStripSeparator2
      //
      this.toolStripSeparator2.Name = "toolStripSeparator2";
      this.toolStripSeparator2.Size = new System.Drawing.Size(161, 6);
      //
      // cutContextStripMenuItem
      //
      this.cutContextStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Cut;
      this.cutContextStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.cutContextStripMenuItem.Name = "cutContextStripMenuItem";
      this.cutContextStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
      this.cutContextStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.cutContextStripMenuItem.Text = "Cu&t";
      this.cutContextStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click);
      //
      // copyContextStripMenuItem
      //
      this.copyContextStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Copy;
      this.copyContextStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.copyContextStripMenuItem.Name = "copyContextStripMenuItem";
      this.copyContextStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
      this.copyContextStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.copyContextStripMenuItem.Text = "&Copy";
      this.copyContextStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
      //
      // pasteContextStripMenuItem
      //
      this.pasteContextStripMenuItem.Image = global::LoreSoft.Calculator.Properties.Resources.Paste;
      this.pasteContextStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
      this.pasteContextStripMenuItem.Name = "pasteContextStripMenuItem";
      this.pasteContextStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
      this.pasteContextStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.pasteContextStripMenuItem.Text = "&Paste";
      this.pasteContextStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click);
      //
      // toolStripSeparator8
      //
      this.toolStripSeparator8.Name = "toolStripSeparator8";
      this.toolStripSeparator8.Size = new System.Drawing.Size(161, 6);
      //
      // selectAllContextStripMenuItem
      //
      this.selectAllContextStripMenuItem.Name = "selectAllContextStripMenuItem";
      this.selectAllContextStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A)));
      this.selectAllContextStripMenuItem.Size = new System.Drawing.Size(164, 22);
      this.selectAllContextStripMenuItem.Text = "Select &All";
      this.selectAllContextStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click);
      //
      // statusStrip
      //
      this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.answerToolStripStatusLabel,
            this.timerToolStripStatusLabel,
            this.numLockToolStripStatusLabel});
      this.statusStrip.Location = new System.Drawing.Point(0, 302);
      this.statusStrip.Name = "statusStrip";
      this.statusStrip.Size = new System.Drawing.Size(384, 22);
      this.statusStrip.TabIndex = 4;
      this.statusStrip.Text = "statusStrip1";
      //
      // answerToolStripStatusLabel
      //
      this.answerToolStripStatusLabel.Name = "answerToolStripStatusLabel";
      this.answerToolStripStatusLabel.Size = new System.Drawing.Size(219, 17);
      this.answerToolStripStatusLabel.Spring = true;
      this.answerToolStripStatusLabel.Text = "Ready";
      this.answerToolStripStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
      this.answerToolStripStatusLabel.ToolTipText = "The last answer value.";
      //
      // timerToolStripStatusLabel
      //
      this.timerToolStripStatusLabel.AutoSize = false;
      this.timerToolStripStatusLabel.Name = "timerToolStripStatusLabel";
      this.timerToolStripStatusLabel.Size = new System.Drawing.Size(100, 17);
      this.timerToolStripStatusLabel.Text = "0.000 ms";
      this.timerToolStripStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
      this.timerToolStripStatusLabel.ToolTipText = "The number of miliseconds the last calculation took.";
      //
      // numLockToolStripStatusLabel
      //
      this.numLockToolStripStatusLabel.AutoSize = false;
      this.numLockToolStripStatusLabel.Name = "numLockToolStripStatusLabel";
      this.numLockToolStripStatusLabel.Size = new System.Drawing.Size(50, 17);
      this.numLockToolStripStatusLabel.Text = "NUM";
      this.numLockToolStripStatusLabel.ToolTipText = "The state of the Num Locks key.";
      //
      // saveFileDialog
      //
      this.saveFileDialog.DefaultExt = "txt";
      this.saveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
      this.saveFileDialog.SupportMultiDottedExtensions = true;
      this.saveFileDialog.Title = "Save History";
      //
      // allowOnlyOneInstanceToolStripMenuItem
      //
      this.allowOnlyOneInstanceToolStripMenuItem.CheckOnClick = true;
      this.allowOnlyOneInstanceToolStripMenuItem.Name = "allowOnlyOneInstanceToolStripMenuItem";
      this.allowOnlyOneInstanceToolStripMenuItem.Size = new System.Drawing.Size(204, 22);
      this.allowOnlyOneInstanceToolStripMenuItem.Text = "Allow Only One &Instance";
      this.allowOnlyOneInstanceToolStripMenuItem.Click += new System.EventHandler(this.allowOnlyOneInstanceToolStripMenuItem_Click);
      //
      // CalculatorForm
      //
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(384, 324);
      this.Controls.Add(this.historyPanel);
      this.Controls.Add(this.inputLabel);
      this.Controls.Add(this.inputTextBox);
      this.Controls.Add(this.mainToolStrip);
      this.Controls.Add(this.mainMenuStrip);
      this.Controls.Add(this.statusStrip);
      this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
      this.MinimumSize = new System.Drawing.Size(400, 360);
      this.Name = "CalculatorForm";
      this.Text = "Calculator.NET";
      this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CalculatorForm_FormClosing);
      this.Load += new System.EventHandler(this.CalculatorForm_Load);
      this.mainMenuStrip.ResumeLayout(false);
      this.mainMenuStrip.PerformLayout();
      this.mainToolStrip.ResumeLayout(false);
      this.mainToolStrip.PerformLayout();
      this.historyPanel.ResumeLayout(false);
      this.historyContextMenuStrip.ResumeLayout(false);
      this.inputContextMenuStrip.ResumeLayout(false);
      this.statusStrip.ResumeLayout(false);
      this.statusStrip.PerformLayout();
      this.ResumeLayout(false);
      this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.MenuStrip mainMenuStrip;
        private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
        private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem undoToolStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
        private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
        private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem functionsToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem conversionsToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem;
        private System.Windows.Forms.ToolStrip mainToolStrip;
        private System.Windows.Forms.ToolStripButton saveToolStripButton;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator;
        private System.Windows.Forms.ToolStripButton cutToolStripButton;
        private System.Windows.Forms.ToolStripButton copyToolStripButton;
        private System.Windows.Forms.ToolStripButton pasteToolStripButton;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
        private System.Windows.Forms.Panel historyPanel;
        private System.Windows.Forms.RichTextBox historyRichTextBox;
        private System.Windows.Forms.Label historyLabel;
        private System.Windows.Forms.Label inputLabel;
        private System.Windows.Forms.TextBox inputTextBox;
        private System.Windows.Forms.StatusStrip statusStrip;
        private System.Windows.Forms.ToolStripStatusLabel answerToolStripStatusLabel;
        private System.Windows.Forms.ToolStripStatusLabel numLockToolStripStatusLabel;
        private System.Windows.Forms.ToolStripStatusLabel timerToolStripStatusLabel;
        private System.Windows.Forms.ToolStripMenuItem clearHistoryToolStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
        private System.Windows.Forms.ToolStripMenuItem historyFontToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem inputFontToolStripMenuItem;
        private System.Windows.Forms.ToolStripButton undoToolStripButton;
        private System.Windows.Forms.FontDialog fontDialog;
        private System.Windows.Forms.SaveFileDialog saveFileDialog;
        private System.Windows.Forms.ContextMenuStrip inputContextMenuStrip;
        private System.Windows.Forms.ToolStripMenuItem undoContextStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
        private System.Windows.Forms.ToolStripMenuItem cutContextStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem copyContextStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem pasteContextStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
        private System.Windows.Forms.ToolStripMenuItem selectAllContextStripMenuItem;
        private System.Windows.Forms.ContextMenuStrip historyContextMenuStrip;
        private System.Windows.Forms.ToolStripMenuItem clearHistoryContextStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
        private System.Windows.Forms.ToolStripMenuItem copyHistoryContextStripMenuItem2;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator10;
        private System.Windows.Forms.ToolStripMenuItem replaceCalculatorToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem basicOperationsToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem trigFunctionsToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem subtractToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem multiplyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem divideToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem modulusToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem powerToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem sqrtToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem absToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem cosToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem acosToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem sinToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem asinToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem tanToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem atanToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem logFunctionsToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem coshToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem sinhToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem tanhToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem expToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem logToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem log10ToolStripMenuItem;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
        private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
        private System.Windows.Forms.ToolStripButton clearHistoryToolStripButton;
        private System.Windows.Forms.ToolStripMenuItem temperatureToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem timeToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem volumeToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem speedToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem lengthToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem massToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem lengthDummyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem massDummyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem speedDummyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem temperatureDummyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem timeDummyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem volumeDummyToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem allowOnlyOneInstanceToolStripMenuItem;
    }
}


text:
TEST(ClearOnExitPolicyTest, HasClearOnExitOrigins) {
  scoped_refptr<quota::MockSpecialStoragePolicy> storage_policy =
      new quota::MockSpecialStoragePolicy;
  scoped_refptr<ClearOnExitPolicy> policy =
      new ClearOnExitPolicy(storage_policy.get());

  EXPECT_FALSE(policy->HasClearOnExitOrigins());

  storage_policy->AddSessionOnly(GURL("http://test.com/"));
  EXPECT_TRUE(policy->HasClearOnExitOrigins());
}

TEST(ClearOnExitPolicyTest, ShouldClearOriginOnExit) {
  scoped_refptr<quota::MockSpecialStoragePolicy> storage_policy =
      new quota::MockSpecialStoragePolicy;
  storage_policy->AddSessionOnly(GURL("http://session.com/"));
  storage_policy->AddSessionOnly(GURL("https://secure.com/"));

  scoped_refptr<ClearOnExitPolicy> policy =
      new ClearOnExitPolicy(storage_policy.get());

  EXPECT_TRUE(policy->ShouldClearOriginOnExit("session.com", false));
  EXPECT_FALSE(policy->ShouldClearOriginOnExit("session.com", true));

  EXPECT_FALSE(policy->ShouldClearOriginOnExit("secure.com", false));
  EXPECT_TRUE(policy->ShouldClearOriginOnExit("secure.com", true));

  EXPECT_FALSE(policy->ShouldClearOriginOnExit("other.com", false));
  EXPECT_FALSE(policy->ShouldClearOriginOnExit("other.com", true));
}


text:
use std::fmt;

use diesel::pg::PgConnection;
use diesel::result::Error;
use diesel::*;
use diesel::{insert_into};

use crate::concerns::CortexInsertable;
use crate::schema::log_errors;
use crate::schema::log_fatals;
use crate::schema::log_infos;
use crate::schema::log_invalids;
use crate::schema::log_warnings;

use super::tasks::Task;

// Log Messages

#[derive(Identifiable, Queryable, AsChangeset, Associations, Clone, Debug)]
#[belongs_to(Task)]
/// An info/debug message, as per the `LaTeXML` convention
pub struct LogInfo {
  /// task primary key, auto-incremented by postgresql
  pub id: i64,
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}
#[derive(Insertable, Clone, Debug)]
#[table_name = "log_infos"]
/// A new, insertable, info/debug message
pub struct NewLogInfo {
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}

#[derive(Identifiable, Queryable, AsChangeset, Associations, Clone, Debug)]
#[belongs_to(Task)]
/// A warning message, as per the `LaTeXML` convention
pub struct LogWarning {
  /// task primary key, auto-incremented by postgresql
  pub id: i64,
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}
#[derive(Insertable, Clone, Debug)]
#[table_name = "log_warnings"]
/// A new, insertable, warning message
pub struct NewLogWarning {
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}

#[derive(Identifiable, Queryable, AsChangeset, Associations, Clone, Debug)]
#[belongs_to(Task)]
/// An error message, as per the `LaTeXML` convention
pub struct LogError {
  /// task primary key, auto-incremented by postgresql
  pub id: i64,
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}
#[derive(Insertable, Clone, Debug)]
#[table_name = "log_errors"]
/// A new, insertable, error message
pub struct NewLogError {
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}

#[derive(Identifiable, Queryable, AsChangeset, Associations, Clone, Debug)]
#[belongs_to(Task)]
/// A fatal message, as per the `LaTeXML` convention
pub struct LogFatal {
  /// task primary key, auto-incremented by postgresql
  pub id: i64,
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}
#[derive(Insertable, Clone, Debug)]
#[table_name = "log_fatals"]
/// A new, insertable, fatal message
pub struct NewLogFatal {
  /// mid-level description (open set)
  pub category: String,
  /// owner task's id
  pub task_id: i64,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}

#[derive(Identifiable, Queryable, AsChangeset, Clone, Associations, Debug)]
#[belongs_to(Task)]
/// An invalid message, as per the `LaTeXML` convention
pub struct LogInvalid {
  /// task primary key, auto-incremented by postgresql
  pub id: i64,
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}
#[derive(Insertable, Clone, Debug)]
#[table_name = "log_invalids"]
/// A new, insertable, invalid message
pub struct NewLogInvalid {
  /// owner task's id
  pub task_id: i64,
  /// mid-level description (open set)
  pub category: String,
  /// low-level description (open set)
  pub what: String,
  /// technical details of the message (e.g. localization info)
  pub details: String,
}

/// Log actor trait, assumes already Identifiable (for id())
pub trait LogRecord {
  /// Owner Task's id accessor
  fn task_id(&self) -> i64;
  /// Category accessor
  fn category(&self) -> &str;
  /// What accessor
  fn what(&self) -> &str;
  /// Details accessor
  fn details(&self) -> &str;
  /// Details setter
  fn set_details(&mut self, new_details: String);
  /// Severity accessor
  fn severity(&self) -> &str;
  /// Implements the fmt::Debug fmt
  fn debug(&self, f: &mut fmt::Formatter) -> fmt::Result {
    writeln!(
      f,
      "{}(category: {},\n\twhat: {},\n\tdetails: {})",
      self.severity(),
      self.category(),
      self.what(),
      self.details()
    )
  }
}
impl fmt::Debug for dyn LogRecord {
  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.debug(f) }
}
impl fmt::Display for dyn LogRecord {
  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.debug(f) }
}

impl LogRecord for LogInfo {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "info" }
}
impl LogRecord for NewLogInfo {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "info" }
}
impl CortexInsertable for NewLogInfo {
  fn create(&self, connection: &PgConnection) -> Result<usize, Error> {
    insert_into(log_infos::table)
      .values(self)
      .execute(connection)
  }
}
impl LogRecord for LogWarning {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "warning" }
}
impl LogRecord for NewLogWarning {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "warning" }
}
impl CortexInsertable for NewLogWarning {
  fn create(&self, connection: &PgConnection) -> Result<usize, Error> {
    insert_into(log_warnings::table)
      .values(self)
      .execute(connection)
  }
}
impl LogRecord for LogError {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "error" }
}
impl LogRecord for NewLogError {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "error" }
}
impl CortexInsertable for NewLogError {
  fn create(&self, connection: &PgConnection) -> Result<usize, Error> {
    insert_into(log_errors::table)
      .values(self)
      .execute(connection)
  }
}
impl LogRecord for LogFatal {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "fatal" }
}
impl LogRecord for NewLogFatal {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "fatal" }
}
impl CortexInsertable for NewLogFatal {
  fn create(&self, connection: &PgConnection) -> Result<usize, Error> {
    insert_into(log_fatals::table)
      .values(self)
      .execute(connection)
  }
}
impl LogRecord for LogInvalid {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "invalid" }
}
impl LogRecord for NewLogInvalid {
  fn task_id(&self) -> i64 { self.task_id }
  fn category(&self) -> &str { &self.category }
  fn what(&self) -> &str { &self.what }
  fn details(&self) -> &str { &self.details }
  fn set_details(&mut self, new_details: String) { self.details = new_details; }
  fn severity(&self) -> &str { "invalid" }
}
impl CortexInsertable for NewLogInvalid {
  fn create(&self, connection: &PgConnection) -> Result<usize, Error> {
    insert_into(log_invalids::table)
      .values(self)
      .execute(connection)
  }
}


text:
set -e

PIVOTAL_UI_LOCATION=/Users/pivotal/workspace/pivotal-ui
CONTAINER_NAME=pivotalui/concourse:v3
LOCAL_REPORT_LOCATION=/tmp/gemini-report
LOCAL_SCREENS_LOCATION=/tmp/gemini-updated-screens

## CLEANUP
function cleanup {
  RUNNING_CONTAINERS=`echo $(docker ps -a | grep $CONTAINER_NAME)`
  if [ -n "$RUNNING_CONTAINERS" ]; then
      echo "Stopping running containers $RUNNING_CONTAINERS"
      docker rm -f `docker ps -a | grep $CONTAINER_NAME | awk '{print $1}'`
  fi
}
trap cleanup EXIT

cleanup

## SETUP
echo "Starting container $CONTAINER_NAME"
docker run -d $CONTAINER_NAME tail -f /root/.bashrc 1>/dev/null # really hacky way to create a persistent container

CONTAINER_ID=`docker ps | grep $CONTAINER_NAME | awk '{print $1}'`
echo "Using container $CONTAINER_ID. You can manually attach with 'docker exec -it $CONTAINER_ID /bin/bash'"

## RUN
docker exec $CONTAINER_ID rm -rf /pivotal-ui
docker exec $CONTAINER_ID mkdir -p /pivotal-ui
docker cp $PIVOTAL_UI_LOCATION $CONTAINER_ID:/
echo `docker exec -it $CONTAINER_ID /pivotal-ui/styleguide_new/bin/gemini-in-docker.sh /pivotal-ui test`
docker cp $CONTAINER_ID:/pivotal-ui/styleguide_new/gemini-report $LOCAL_REPORT_LOCATION
echo "Your gemini report is located at $LOCAL_REPORT_LOCATION"