text:
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc.  All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//     * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

// Test suite is written using Jasmine -- see http://jasmine.github.io/

goog.setTestOnly();

goog.require('goog.json');
goog.require('goog.testing.asserts');
goog.require('goog.userAgent');

// CommonJS-LoadFromFile: google-protobuf jspb
goog.require('jspb.Message');

// CommonJS-LoadFromFile: test5_pb proto.jspb.exttest.beta
goog.require('proto.jspb.exttest.beta.floatingStrField');

// CommonJS-LoadFromFile: test3_pb proto.jspb.exttest
goog.require('proto.jspb.exttest.floatingMsgField');

// CommonJS-LoadFromFile: test4_pb proto.jspb.exttest
goog.require('proto.jspb.exttest.floatingMsgFieldTwo');

// CommonJS-LoadFromFile: test_pb proto.jspb.test
goog.require('proto.jspb.test.CloneExtension');
goog.require('proto.jspb.test.Complex');
goog.require('proto.jspb.test.DefaultValues');
goog.require('proto.jspb.test.Empty');
goog.require('proto.jspb.test.EnumContainer');
goog.require('proto.jspb.test.floatingMsgField');
goog.require('proto.jspb.test.FloatingPointFields');
goog.require('proto.jspb.test.floatingStrField');
goog.require('proto.jspb.test.HasExtensions');
goog.require('proto.jspb.test.IndirectExtension');
goog.require('proto.jspb.test.IsExtension');
goog.require('proto.jspb.test.OptionalFields');
goog.require('proto.jspb.test.OuterEnum');
goog.require('proto.jspb.test.OuterMessage.Complex');
goog.require('proto.jspb.test.Simple1');
goog.require('proto.jspb.test.Simple2');
goog.require('proto.jspb.test.SpecialCases');
goog.require('proto.jspb.test.TestClone');
goog.require('proto.jspb.test.TestEndsWithBytes');
goog.require('proto.jspb.test.TestGroup');
goog.require('proto.jspb.test.TestGroup1');
goog.require('proto.jspb.test.TestMessageWithOneof');
goog.require('proto.jspb.test.TestReservedNames');
goog.require('proto.jspb.test.TestReservedNamesExtension');

// CommonJS-LoadFromFile: test2_pb proto.jspb.test
goog.require('proto.jspb.test.ExtensionMessage');
goog.require('proto.jspb.test.TestExtensionsMessage');

describe('Message test suite', function() {
  it('testEmptyProto', function() {
    var empty1 = new proto.jspb.test.Empty([]);
    var empty2 = new proto.jspb.test.Empty([]);
    assertObjectEquals({}, empty1.toObject());
    assertObjectEquals('Message should not be corrupted:', empty2, empty1);
  });

  it('testTopLevelEnum', function() {
    var response = new proto.jspb.test.EnumContainer([]);
    response.setOuterEnum(proto.jspb.test.OuterEnum.FOO);
    assertEquals(proto.jspb.test.OuterEnum.FOO, response.getOuterEnum());
  });

  it('testByteStrings', function() {
    var data = new proto.jspb.test.DefaultValues([]);
    data.setBytesField('some_bytes');
    assertEquals('some_bytes', data.getBytesField());
  });

  it('testComplexConversion', function() {
    var data1 = ['a',,, [, 11], [[, 22], [, 33]],, ['s1', 's2'],, 1];
    var data2 = ['a',,, [, 11], [[, 22], [, 33]],, ['s1', 's2'],, 1];
    var foo = new proto.jspb.test.Complex(data1);
    var bar = new proto.jspb.test.Complex(data2);
    var result = foo.toObject();
    assertObjectEquals({
      aString: 'a',
      anOutOfOrderBool: 1,
      aNestedMessage: {
        anInt: 11
      },
      aRepeatedMessageList: [{anInt: 22}, {anInt: 33}],
      aRepeatedStringList: ['s1', 's2']
    }, result);

    // Now test with the jspb instances included.
    result = foo.toObject(true /* opt_includeInstance */);
    assertObjectEquals({
      aString: 'a',
      anOutOfOrderBool: 1,
      aNestedMessage: {
        anInt: 11,
        $jspbMessageInstance: foo.getANestedMessage()
      },
      aRepeatedMessageList: [
        {anInt: 22, $jspbMessageInstance: foo.getARepeatedMessageList()[0]},
        {anInt: 33, $jspbMessageInstance: foo.getARepeatedMessageList()[1]}
      ],
      aRepeatedStringList: ['s1', 's2'],
      $jspbMessageInstance: foo
    }, result);

  });

  it('testMissingFields', function() {
    var foo = new proto.jspb.test.Complex([
        undefined, undefined, undefined, [],
        undefined, undefined, undefined, undefined]);
    var bar = new proto.jspb.test.Complex([
        undefined, undefined, undefined, [],
        undefined, undefined, undefined, undefined]);
    var result = foo.toObject();
    assertObjectEquals({
      aString: undefined,
      anOutOfOrderBool: undefined,
      aNestedMessage: {
        anInt: undefined
      },
      // Note: JsPb converts undefined repeated fields to empty arrays.
      aRepeatedMessageList: [],
      aRepeatedStringList: []
    }, result);

  });

  it('testNestedComplexMessage', function() {
    // Instantiate the message and set a unique field, just to ensure that we
    // are not getting jspb.test.Complex instead.
    var msg = new proto.jspb.test.OuterMessage.Complex();
    msg.setInnerComplexField(5);
  });

  it('testSpecialCases', function() {
    // Note: Some property names are reserved in JavaScript.
    // These names are converted to the Js property named pb_<reserved_name>.
    var special =
        new proto.jspb.test.SpecialCases(['normal', 'default', 'function',
        'var']);
    var result = special.toObject();
    assertObjectEquals({
      normal: 'normal',
      pb_default: 'default',
      pb_function: 'function',
      pb_var: 'var'
    }, result);
  });

  it('testDefaultValues', function() {
    var defaultString = "default<>\'\"abc";
    var response = new proto.jspb.test.DefaultValues();

    // Test toObject
    var expectedObject = {
      stringField: defaultString,
      boolField: true,
      intField: 11,
      enumField: 13,
      emptyField: '',
      bytesField: 'bW9v'
    };
    assertObjectEquals(expectedObject, response.toObject());

    // Test getters
    response = new proto.jspb.test.DefaultValues();
    assertEquals(defaultString, response.getStringField());
    assertEquals(true, response.getBoolField());
    assertEquals(11, response.getIntField());
    assertEquals(13, response.getEnumField());
    assertEquals('', response.getEmptyField());
    assertEquals('bW9v', response.getBytesField());

    function makeDefault(values) {
      return new proto.jspb.test.DefaultValues(values);
    }

    // Test with undefined values,
    // Use push to workaround IE treating undefined array elements as holes.
    response = makeDefault([undefined, undefined, undefined, undefined]);
    assertEquals(defaultString, response.getStringField());
    assertEquals(true, response.getBoolField());
    assertEquals(11, response.getIntField());
    assertEquals(13, response.getEnumField());
    assertFalse(response.hasStringField());
    assertFalse(response.hasBoolField());
    assertFalse(response.hasIntField());
    assertFalse(response.hasEnumField());

    // Test with null values, as would be returned by a JSON serializer.
    response = makeDefault([null, null, null, null]);
    assertEquals(defaultString, response.getStringField());
    assertEquals(true, response.getBoolField());
    assertEquals(11, response.getIntField());
    assertEquals(13, response.getEnumField());
    assertFalse(response.hasStringField());
    assertFalse(response.hasBoolField());
    assertFalse(response.hasIntField());
    assertFalse(response.hasEnumField());

    // Test with false-like values.
    response = makeDefault(['', false, 0, 0]);
    assertEquals('', response.getStringField());
    assertEquals(false, response.getBoolField());
    assertEquals(true, response.getIntField() == 0);
    assertEquals(true, response.getEnumField() == 0);
    assertTrue(response.hasStringField());
    assertTrue(response.hasBoolField());
    assertTrue(response.hasIntField());
    assertTrue(response.hasEnumField());

    // Test that clearing the values reverts them to the default state.
    response = makeDefault(['blah', false, 111, 77]);
    response.clearStringField(); response.clearBoolField();
    response.clearIntField(); response.clearEnumField();
    assertEquals(defaultString, response.getStringField());
    assertEquals(true, response.getBoolField());
    assertEquals(11, response.getIntField());
    assertEquals(13, response.getEnumField());
    assertFalse(response.hasStringField());
    assertFalse(response.hasBoolField());
    assertFalse(response.hasIntField());
    assertFalse(response.hasEnumField());

    // Test that setFoo(null) clears the values.
    response = makeDefault(['blah', false, 111, 77]);
    response.setStringField(null); response.setBoolField(null);
    response.setIntField(undefined); response.setEnumField(undefined);
    assertEquals(defaultString, response.getStringField());
    assertEquals(true, response.getBoolField());
    assertEquals(11, response.getIntField());
    assertEquals(13, response.getEnumField());
    assertFalse(response.hasStringField());
    assertFalse(response.hasBoolField());
    assertFalse(response.hasIntField());
    assertFalse(response.hasEnumField());
  });

  it('testMessageRegistration', /** @suppress {visibility} */ function() {
    // goog.require(SomeResponse) will include its library, which will in
    // turn add SomeResponse to the message registry.
    assertEquals(jspb.Message.registry_['res'], proto.jspb.test.SomeResponse);
  });

  it('testClearFields', function() {
    var data = ['str', true, [11], [[22], [33]], ['s1', 's2']];
    var foo = new proto.jspb.test.OptionalFields(data);
    foo.clearAString();
    foo.clearABool();
    foo.clearANestedMessage();
    foo.clearARepeatedMessageList();
    foo.clearARepeatedStringList();
    assertEquals('', foo.getAString());
    assertEquals(false, foo.getABool());
    assertUndefined(foo.getANestedMessage());
    assertFalse(foo.hasAString());
    assertFalse(foo.hasABool());
    assertObjectEquals([], foo.getARepeatedMessageList());
    assertObjectEquals([], foo.getARepeatedStringList());
    // NOTE: We want the missing fields in 'expected' to be undefined,
    // but we actually get a sparse array instead. We could use something
    // like [1,undefined,2] to avoid this, except that this is still
    // sparse on IE. No comment...
    var expected = [,,, [], []];
    expected[0] = expected[1] = expected[2] = undefined;
    assertObjectEquals(expected, foo.toArray());
  });

  it('testDifferenceRawObject', /** @suppress {visibility} */ function() {
    var p1 = new proto.jspb.test.HasExtensions(['hi', 'diff', {}]);
    var p2 = new proto.jspb.test.HasExtensions(['hi', 'what',
                                               {1000: 'unique'}]);
    var diff = /** @type {proto.jspb.test.HasExtensions} */
        (jspb.Message.difference(p1, p2));
    assertEquals('', diff.getStr1());
    assertEquals('what', diff.getStr2());
    assertEquals('', diff.getStr3());
    assertEquals('unique', diff.extensionObject_[1000]);
  });

  it('testEqualsSimple', function() {
    var s1 = new proto.jspb.test.Simple1(['hi']);
    assertTrue(jspb.Message.equals(s1, new proto.jspb.test.Simple1(['hi'])));
    assertFalse(jspb.Message.equals(s1, new proto.jspb.test.Simple1(['bye'])));
    var s1b = new proto.jspb.test.Simple1(['hi', ['hello']]);
    assertTrue(jspb.Message.equals(s1b,
        new proto.jspb.test.Simple1(['hi', ['hello']])));
    assertTrue(jspb.Message.equals(s1b,
        new proto.jspb.test.Simple1(['hi', ['hello', undefined,
                                            undefined, undefined]])));
    assertFalse(jspb.Message.equals(s1b,
        new proto.jspb.test.Simple1(['no', ['hello']])));
    // Test with messages of different types
    var s2 = new proto.jspb.test.Simple2(['hi']);
    assertFalse(jspb.Message.equals(s1, s2));
  });

  it('testEquals_softComparison', function() {
    var s1 = new proto.jspb.test.Simple1(['hi', [], null]);
    assertTrue(jspb.Message.equals(s1,
        new proto.jspb.test.Simple1(['hi', []])));

    var s1b = new proto.jspb.test.Simple1(['hi', [], true]);
    assertTrue(jspb.Message.equals(s1b,
        new proto.jspb.test.Simple1(['hi', [], 1])));
  });

  it('testEqualsComplex', function() {
    var data1 = ['a',,, [, 11], [[, 22], [, 33]],, ['s1', 's2'],, 1];
    var data2 = ['a',,, [, 11], [[, 22], [, 34]],, ['s1', 's2'],, 1];
    var data3 = ['a',,, [, 11], [[, 22]],, ['s1', 's2'],, 1];
    var data4 = ['hi'];
    var c1a = new proto.jspb.test.Complex(data1);
    var c1b = new proto.jspb.test.Complex(data1);
    var c2 = new proto.jspb.test.Complex(data2);
    var c3 = new proto.jspb.test.Complex(data3);
    var s1 = new proto.jspb.test.Simple1(data4);

    assertTrue(jspb.Message.equals(c1a, c1b));
    assertFalse(jspb.Message.equals(c1a, c2));
    assertFalse(jspb.Message.equals(c2, c3));
    assertFalse(jspb.Message.equals(c1a, s1));
  });

  it('testEqualsExtensionsConstructed', function() {
    assertTrue(jspb.Message.equals(
        new proto.jspb.test.HasExtensions([]),
        new proto.jspb.test.HasExtensions([{}])
    ));
    assertTrue(jspb.Message.equals(
        new proto.jspb.test.HasExtensions(['hi', {100: [{200: 'a'}]}]),
        new proto.jspb.test.HasExtensions(['hi', {100: [{200: 'a'}]}])
    ));
    assertFalse(jspb.Message.equals(
        new proto.jspb.test.HasExtensions(['hi', {100: [{200: 'a'}]}]),
        new proto.jspb.test.HasExtensions(['hi', {100: [{200: 'b'}]}])
    ));
    assertTrue(jspb.Message.equals(
        new proto.jspb.test.HasExtensions([{100: [{200: 'a'}]}]),
        new proto.jspb.test.HasExtensions([{100: [{200: 'a'}]}])
    ));
    assertTrue(jspb.Message.equals(
        new proto.jspb.test.HasExtensions([{100: [{200: 'a'}]}]),
        new proto.jspb.test.HasExtensions([,,, {100: [{200: 'a'}]}])
    ));
    assertTrue(jspb.Message.equals(
        new proto.jspb.test.HasExtensions([,,, {100: [{200: 'a'}]}]),
        new proto.jspb.test.HasExtensions([{100: [{200: 'a'}]}])
    ));
    assertTrue(jspb.Message.equals(
        new proto.jspb.test.HasExtensions(['hi', {100: [{200: 'a'}]}]),
        new proto.jspb.test.HasExtensions(['hi',,, {100: [{200: 'a'}]}])
    ));
    assertTrue(jspb.Message.equals(
        new proto.jspb.test.HasExtensions(['hi',,, {100: [{200: 'a'}]}]),
        new proto.jspb.test.HasExtensions(['hi', {100: [{200: 'a'}]}])
    ));
  });

  it('testEqualsExtensionsUnconstructed', function() {
    assertTrue(jspb.Message.compareFields([], [{}]));
    assertTrue(jspb.Message.compareFields([,,, {}], []));
    assertTrue(jspb.Message.compareFields([,,, {}], [,, {}]));
    assertTrue(jspb.Message.compareFields(
        ['hi', {100: [{200: 'a'}]}], ['hi', {100: [{200: 'a'}]}]));
    assertFalse(jspb.Message.compareFields(
        ['hi', {100: [{200: 'a'}]}], ['hi', {100: [{200: 'b'}]}]));
    assertTrue(jspb.Message.compareFields(
        [{100: [{200: 'a'}]}], [{100: [{200: 'a'}]}]));
    assertTrue(jspb.Message.compareFields(
        [{100: [{200: 'a'}]}], [,,, {100: [{200: 'a'}]}]));
    assertTrue(jspb.Message.compareFields(
        [,,, {100: [{200: 'a'}]}], [{100: [{200: 'a'}]}]));
    assertTrue(jspb.Message.compareFields(
        ['hi', {100: [{200: 'a'}]}], ['hi',,, {100: [{200: 'a'}]}]));
    assertTrue(jspb.Message.compareFields(
        ['hi',,, {100: [{200: 'a'}]}], ['hi', {100: [{200: 'a'}]}]));
  });

  it('testToMap', function() {
    var p1 = new proto.jspb.test.Simple1(['k', ['v']]);
    var p2 = new proto.jspb.test.Simple1(['k1', ['v1', 'v2']]);
    var soymap = jspb.Message.toMap([p1, p2],
        proto.jspb.test.Simple1.prototype.getAString,
        proto.jspb.test.Simple1.prototype.toObject);
    assertEquals('k', soymap['k'].aString);
    assertArrayEquals(['v'], soymap['k'].aRepeatedStringList);
    var protomap = jspb.Message.toMap([p1, p2],
        proto.jspb.test.Simple1.prototype.getAString);
    assertEquals('k', protomap['k'].getAString());
    assertArrayEquals(['v'], protomap['k'].getARepeatedStringList());
  });

  it('testClone', function() {
    var supportsUint8Array =
        !goog.userAgent.IE || goog.userAgent.isVersionOrHigher('10');
    var original = new proto.jspb.test.TestClone();
    original.setStr('v1');
    var simple1 = new proto.jspb.test.Simple1(['x1', ['y1', 'z1']]);
    var simple2 = new proto.jspb.test.Simple1(['x2', ['y2', 'z2']]);
    var simple3 = new proto.jspb.test.Simple1(['x3', ['y3', 'z3']]);
    original.setSimple1(simple1);
    original.setSimple2List([simple2, simple3]);
    var bytes1 = supportsUint8Array ? new Uint8Array([1, 2, 3]) : '123';
    original.setBytesField(bytes1);
    var extension = new proto.jspb.test.CloneExtension();
    extension.setExt('e1');
    original.setExtension(proto.jspb.test.IsExtension.extField, extension);
    var clone = original.clone();
    assertArrayEquals(['v1',, ['x1', ['y1', 'z1']],,
      [['x2', ['y2', 'z2']], ['x3', ['y3', 'z3']]], bytes1,, { 100: [, 'e1'] }],
        clone.toArray());
    clone.setStr('v2');
    var simple4 = new proto.jspb.test.Simple1(['a1', ['b1', 'c1']]);
    var simple5 = new proto.jspb.test.Simple1(['a2', ['b2', 'c2']]);
    var simple6 = new proto.jspb.test.Simple1(['a3', ['b3', 'c3']]);
    clone.setSimple1(simple4);
    clone.setSimple2List([simple5, simple6]);
    if (supportsUint8Array) {
      clone.getBytesField()[0] = 4;
      assertObjectEquals(bytes1, original.getBytesField());
    }
    var bytes2 = supportsUint8Array ? new Uint8Array([4, 5, 6]) : '456';
    clone.setBytesField(bytes2);
    var newExtension = new proto.jspb.test.CloneExtension();
    newExtension.setExt('e2');
    clone.setExtension(proto.jspb.test.CloneExtension.extField, newExtension);
    assertArrayEquals(['v2',, ['a1', ['b1', 'c1']],,
      [['a2', ['b2', 'c2']], ['a3', ['b3', 'c3']]], bytes2,, { 100: [, 'e2'] }],
        clone.toArray());
    assertArrayEquals(['v1',, ['x1', ['y1', 'z1']],,
      [['x2', ['y2', 'z2']], ['x3', ['y3', 'z3']]], bytes1,, { 100: [, 'e1'] }],
        original.toArray());
  });

  it('testCopyInto', function() {
    var supportsUint8Array =
        !goog.userAgent.IE || goog.userAgent.isVersionOrHigher('10');
    var original = new proto.jspb.test.TestClone();
    original.setStr('v1');
    var dest = new proto.jspb.test.TestClone();
    dest.setStr('override');
    var simple1 = new proto.jspb.test.Simple1(['x1', ['y1', 'z1']]);
    var simple2 = new proto.jspb.test.Simple1(['x2', ['y2', 'z2']]);
    var simple3 = new proto.jspb.test.Simple1(['x3', ['y3', 'z3']]);
    var destSimple1 = new proto.jspb.test.Simple1(['ox1', ['oy1', 'oz1']]);
    var destSimple2 = new proto.jspb.test.Simple1(['ox2', ['oy2', 'oz2']]);
    var destSimple3 = new proto.jspb.test.Simple1(['ox3', ['oy3', 'oz3']]);
    original.setSimple1(simple1);
    original.setSimple2List([simple2, simple3]);
    dest.setSimple1(destSimple1);
    dest.setSimple2List([destSimple2, destSimple3]);
    var bytes1 = supportsUint8Array ? new Uint8Array([1, 2, 3]) : '123';
    var bytes2 = supportsUint8Array ? new Uint8Array([4, 5, 6]) : '456';
    original.setBytesField(bytes1);
    dest.setBytesField(bytes2);
    var extension = new proto.jspb.test.CloneExtension();
    extension.setExt('e1');
    original.setExtension(proto.jspb.test.CloneExtension.extField, extension);

    jspb.Message.copyInto(original, dest);
    assertArrayEquals(original.toArray(), dest.toArray());
    assertEquals('x1', dest.getSimple1().getAString());
    assertEquals('e1',
        dest.getExtension(proto.jspb.test.CloneExtension.extField).getExt());
    dest.getSimple1().setAString('new value');
    assertNotEquals(dest.getSimple1().getAString(),
        original.getSimple1().getAString());
    if (supportsUint8Array) {
      dest.getBytesField()[0] = 7;
      assertObjectEquals(bytes1, original.getBytesField());
      assertObjectEquals(new Uint8Array([7, 2, 3]), dest.getBytesField());
    } else {
      dest.setBytesField('789');
      assertObjectEquals(bytes1, original.getBytesField());
      assertObjectEquals('789', dest.getBytesField());
    }
    dest.getExtension(proto.jspb.test.CloneExtension.extField).
        setExt('new value');
    assertNotEquals(
        dest.getExtension(proto.jspb.test.CloneExtension.extField).getExt(),
        original.getExtension(
            proto.jspb.test.CloneExtension.extField).getExt());
  });

  it('testCopyInto_notSameType', function() {
    var a = new proto.jspb.test.TestClone();
    var b = new proto.jspb.test.Simple1(['str', ['s1', 's2']]);

    var e = assertThrows(function() {
      jspb.Message.copyInto(a, b);
    });
    assertContains('should have the same type', e.message);
  });

  it('testExtensions', function() {
    var extension1 = new proto.jspb.test.IsExtension(['ext1field']);
    var extension2 = new proto.jspb.test.Simple1(['str', ['s1', 's2']]);
    var extendable = new proto.jspb.test.HasExtensions(['v1', 'v2', 'v3']);
    extendable.setExtension(proto.jspb.test.IsExtension.extField, extension1);
    extendable.setExtension(proto.jspb.test.IndirectExtension.simple,
                            extension2);
    extendable.setExtension(proto.jspb.test.IndirectExtension.str, 'xyzzy');
    extendable.setExtension(proto.jspb.test.IndirectExtension.repeatedStrList,
        ['a', 'b']);
    var s1 = new proto.jspb.test.Simple1(['foo', ['s1', 's2']]);
    var s2 = new proto.jspb.test.Simple1(['bar', ['t1', 't2']]);
    extendable.setExtension(
        proto.jspb.test.IndirectExtension.repeatedSimpleList,
        [s1, s2]);
    assertObjectEquals(extension1,
        extendable.getExtension(proto.jspb.test.IsExtension.extField));
    assertObjectEquals(extension2,
        extendable.getExtension(proto.jspb.test.IndirectExtension.simple));
    assertObjectEquals('xyzzy',
        extendable.getExtension(proto.jspb.test.IndirectExtension.str));
    assertObjectEquals(['a', 'b'], extendable.getExtension(
        proto.jspb.test.IndirectExtension.repeatedStrList));
    assertObjectEquals([s1, s2], extendable.getExtension(
        proto.jspb.test.IndirectExtension.repeatedSimpleList));
    // Not supported yet, but it should work...
    extendable.setExtension(proto.jspb.test.IndirectExtension.simple, null);
    assertNull(
        extendable.getExtension(proto.jspb.test.IndirectExtension.simple));
    extendable.setExtension(proto.jspb.test.IndirectExtension.str, null);
    assertNull(extendable.getExtension(proto.jspb.test.IndirectExtension.str));

    // Extension fields with jspb.ignore = true are ignored.
    assertUndefined(proto.jspb.test.IndirectExtension['ignored']);
    assertUndefined(proto.jspb.test.HasExtensions['ignoredFloating']);
  });

  it('testFloatingExtensions', function() {
    // From an autogenerated container.
    var extendable = new proto.jspb.test.HasExtensions(['v1', 'v2', 'v3']);
    var extension = new proto.jspb.test.Simple1(['foo', ['s1', 's2']]);
    extendable.setExtension(proto.jspb.test.simple1, extension);
    assertObjectEquals(extension,
        extendable.getExtension(proto.jspb.test.simple1));

    // From _lib mode.
    extension = new proto.jspb.test.ExtensionMessage(['s1']);
    extendable = new proto.jspb.test.TestExtensionsMessage([16]);
    extendable.setExtension(proto.jspb.test.floatingMsgField, extension);
    extendable.setExtension(proto.jspb.test.floatingStrField, 's2');
    assertObjectEquals(extension,
        extendable.getExtension(proto.jspb.test.floatingMsgField));
    assertObjectEquals('s2',
        extendable.getExtension(proto.jspb.test.floatingStrField));
    assertNotUndefined(proto.jspb.exttest.floatingMsgField);
    assertNotUndefined(proto.jspb.exttest.floatingMsgFieldTwo);
    assertNotUndefined(proto.jspb.exttest.beta.floatingStrField);
  });

  it('testToObject_extendedObject', function() {
    var extension1 = new proto.jspb.test.IsExtension(['ext1field']);
    var extension2 = new proto.jspb.test.Simple1(['str', ['s1', 's2'], true]);
    var extendable = new proto.jspb.test.HasExtensions(['v1', 'v2', 'v3']);
    extendable.setExtension(proto.jspb.test.IsExtension.extField, extension1);
    extendable.setExtension(proto.jspb.test.IndirectExtension.simple,
                            extension2);
    extendable.setExtension(proto.jspb.test.IndirectExtension.str, 'xyzzy');
    extendable.setExtension(proto.jspb.test.IndirectExtension.repeatedStrList,
        ['a', 'b']);
    var s1 = new proto.jspb.test.Simple1(['foo', ['s1', 's2'], true]);
    var s2 = new proto.jspb.test.Simple1(['bar', ['t1', 't2'], false]);
    extendable.setExtension(
        proto.jspb.test.IndirectExtension.repeatedSimpleList,
        [s1, s2]);
    assertObjectEquals({
      str1: 'v1', str2: 'v2', str3: 'v3',
      extField: { ext1: 'ext1field' },
      simple: {
        aString: 'str', aRepeatedStringList: ['s1', 's2'], aBoolean: true
      },
      str: 'xyzzy',
      repeatedStrList: ['a', 'b'],
      repeatedSimpleList: [
        { aString: 'foo', aRepeatedStringList: ['s1', 's2'], aBoolean: true},
        { aString: 'bar', aRepeatedStringList: ['t1', 't2'], aBoolean: false}
      ]
    }, extendable.toObject());

    // Now, with instances included.
    assertObjectEquals({
      str1: 'v1', str2: 'v2', str3: 'v3',
      extField: {
        ext1: 'ext1field',
        $jspbMessageInstance:
            extendable.getExtension(proto.jspb.test.IsExtension.extField)
      },
      simple: {
        aString: 'str',
        aRepeatedStringList: ['s1', 's2'],
        aBoolean: true,
        $jspbMessageInstance:
            extendable.getExtension(proto.jspb.test.IndirectExtension.simple)
      },
      str: 'xyzzy',
      repeatedStrList: ['a', 'b'],
      repeatedSimpleList: [{
        aString: 'foo',
        aRepeatedStringList: ['s1', 's2'],
        aBoolean: true,
        $jspbMessageInstance: s1
      }, {
        aString: 'bar',
        aRepeatedStringList: ['t1', 't2'],
        aBoolean: false,
        $jspbMessageInstance: s2
      }],
      $jspbMessageInstance: extendable
    }, extendable.toObject(true /* opt_includeInstance */));
  });

  it('testInitialization_emptyArray', function() {
    var msg = new proto.jspb.test.HasExtensions([]);
    if (jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS) {
      assertArrayEquals([], msg.toArray());
    } else {
      // Extension object is created past all regular fields.
      assertArrayEquals([,,, {}], msg.toArray());
    }
  });

  it('testInitialization_justExtensionObject', function() {
    var msg = new proto.jspb.test.Empty([{1: 'hi'}]);
    // The extensionObject is not moved from its original location.
    assertArrayEquals([{1: 'hi'}], msg.toArray());
  });

  it('testInitialization_incompleteList', function() {
    var msg = new proto.jspb.test.Empty([1, {4: 'hi'}]);
    // The extensionObject is not moved from its original location.
    assertArrayEquals([1, {4: 'hi'}], msg.toArray());
  });

  it('testInitialization_forwardCompatible', function() {
    var msg = new proto.jspb.test.Empty([1, 2, 3, {1: 'hi'}]);
    assertArrayEquals([1, 2, 3, {1: 'hi'}], msg.toArray());
  });

  it('testExtendedMessageEnsureObject',
     /** @suppress {visibility} */ function() {
       var data =
           new proto.jspb.test.HasExtensions(['str1', {'a_key': 'an_object'}]);
       assertEquals('an_object', data.extensionObject_['a_key']);
     });

  it('testToObject_hasExtensionField', function() {
    var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1']}]);
    var obj = data.toObject();
    assertEquals('str1', obj.str1);
    assertEquals('ext1', obj.extField.ext1);
  });

  it('testGetExtension', function() {
    var data = new proto.jspb.test.HasExtensions(['str1', {100: ['ext1']}]);
    assertEquals('str1', data.getStr1());
    var extension = data.getExtension(proto.jspb.test.IsExtension.extField);
    assertNotNull(extension);
    assertEquals('ext1', extension.getExt1());
  });

  it('testSetExtension', function() {
    var data = new proto.jspb.test.HasExtensions();
    var extensionMessage = new proto.jspb.test.IsExtension(['is_extension']);
    data.setExtension(proto.jspb.test.IsExtension.extField, extensionMessage);
    var obj = data.toObject();
    assertNotNull(
        data.getExtension(proto.jspb.test.IsExtension.extField));
    assertEquals('is_extension', obj.extField.ext1);
  });

  /**
   * Note that group is long deprecated, we only support it because JsPb has
   * a goal of being able to generate JS classes for all proto descriptors.
   */
  it('testGroups', function() {
    var group = new proto.jspb.test.TestGroup();
    var someGroup = new proto.jspb.test.TestGroup.RepeatedGroup();
    someGroup.setId('g1');
    someGroup.setSomeBoolList([true, false]);
    group.setRepeatedGroupList([someGroup]);
    var groups = group.getRepeatedGroupList();
    assertEquals('g1', groups[0].getId());
    assertObjectEquals([true, false], groups[0].getSomeBoolList());
    assertObjectEquals({id: 'g1', someBoolList: [true, false]},
        groups[0].toObject());
    assertObjectEquals({
      repeatedGroupList: [{id: 'g1', someBoolList: [true, false]}],
      requiredGroup: {id: undefined},
      optionalGroup: undefined,
      requiredSimple: {aRepeatedStringList: [], aString: undefined},
      optionalSimple: undefined,
      id: undefined
    }, group.toObject());
    var group1 = new proto.jspb.test.TestGroup1();
    group1.setGroup(someGroup);
    assertEquals(someGroup, group1.getGroup());
  });

  it('testNonExtensionFieldsAfterExtensionRange', function() {
    var data = [{'1': 'a_string'}];
    var message = new proto.jspb.test.Complex(data);
    assertArrayEquals([], message.getARepeatedStringList());
  });

  it('testReservedGetterNames', function() {
    var message = new proto.jspb.test.TestReservedNames();
    message.setExtension$(11);
    message.setExtension(proto.jspb.test.TestReservedNamesExtension.foo, 12);
    assertEquals(11, message.getExtension$());
    assertEquals(12, message.getExtension(
        proto.jspb.test.TestReservedNamesExtension.foo));
    assertObjectEquals({extension: 11, foo: 12}, message.toObject());
  });

  it('testInitializeMessageWithUnsetOneof', function() {
    var message = new proto.jspb.test.TestMessageWithOneof([]);
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.
            PARTIAL_ONEOF_NOT_SET,
        message.getPartialOneofCase());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.
            RECURSIVE_ONEOF_NOT_SET,
        message.getRecursiveOneofCase());
  });

  it('testInitializeMessageWithSingleValueSetInOneof', function() {
    var message = new proto.jspb.test.TestMessageWithOneof([,, 'x']);

    assertEquals('x', message.getPone());
    assertEquals('', message.getPthree());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
        message.getPartialOneofCase());
  });

  it('testKeepsLastWireValueSetInUnion_multipleValues', function() {
    var message = new proto.jspb.test.TestMessageWithOneof([,, 'x',, 'y']);

    assertEquals('', message.getPone());
    assertEquals('y', message.getPthree());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PTHREE,
        message.getPartialOneofCase());
  });

  it('testSettingOneofFieldClearsOthers', function() {
    var message = new proto.jspb.test.TestMessageWithOneof;
    assertEquals('', message.getPone());
    assertEquals('', message.getPthree());
    assertFalse(message.hasPone());
    assertFalse(message.hasPthree());

    message.setPone('hi');
    assertEquals('hi', message.getPone());
    assertEquals('', message.getPthree());
    assertTrue(message.hasPone());
    assertFalse(message.hasPthree());

    message.setPthree('bye');
    assertEquals('', message.getPone());
    assertEquals('bye', message.getPthree());
    assertFalse(message.hasPone());
    assertTrue(message.hasPthree());
  });

  it('testSettingOneofFieldDoesNotClearFieldsFromOtherUnions', function() {
    var other = new proto.jspb.test.TestMessageWithOneof;
    var message = new proto.jspb.test.TestMessageWithOneof;
    assertEquals('', message.getPone());
    assertEquals('', message.getPthree());
    assertUndefined(message.getRone());
    assertFalse(message.hasPone());
    assertFalse(message.hasPthree());

    message.setPone('hi');
    message.setRone(other);
    assertEquals('hi', message.getPone());
    assertEquals('', message.getPthree());
    assertEquals(other, message.getRone());
    assertTrue(message.hasPone());
    assertFalse(message.hasPthree());

    message.setPthree('bye');
    assertEquals('', message.getPone());
    assertEquals('bye', message.getPthree());
    assertEquals(other, message.getRone());
    assertFalse(message.hasPone());
    assertTrue(message.hasPthree());
  });

  it('testUnsetsOneofCaseWhenFieldIsCleared', function() {
    var message = new proto.jspb.test.TestMessageWithOneof;
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.
            PARTIAL_ONEOF_NOT_SET,
        message.getPartialOneofCase());

    message.setPone('hi');
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
        message.getPartialOneofCase());

    message.clearPone();
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.
            PARTIAL_ONEOF_NOT_SET,
        message.getPartialOneofCase());
  });

  it('testMessageWithDefaultOneofValues', function() {
    var message = new proto.jspb.test.TestMessageWithOneof;
    assertEquals(1234, message.getAone());
    assertEquals(0, message.getAtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofACase
            .DEFAULT_ONEOF_A_NOT_SET,
        message.getDefaultOneofACase());

    message.setAone(567);
    assertEquals(567, message.getAone());
    assertEquals(0, message.getAtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE,
        message.getDefaultOneofACase());

    message.setAtwo(890);
    assertEquals(1234, message.getAone());
    assertEquals(890, message.getAtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.ATWO,
        message.getDefaultOneofACase());

    message.clearAtwo();
    assertEquals(1234, message.getAone());
    assertEquals(0, message.getAtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofACase
            .DEFAULT_ONEOF_A_NOT_SET,
        message.getDefaultOneofACase());
  });

  it('testMessageWithDefaultOneofValues_defaultNotOnFirstField', function() {
    var message = new proto.jspb.test.TestMessageWithOneof;
    assertEquals(0, message.getBone());
    assertEquals(1234, message.getBtwo());
    assertFalse(message.hasBone());
    assertFalse(message.hasBtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase
            .DEFAULT_ONEOF_B_NOT_SET,
        message.getDefaultOneofBCase());

    message.setBone(2);
    assertEquals(2, message.getBone());
    assertEquals(1234, message.getBtwo());
    assertTrue(message.hasBone());
    assertFalse(message.hasBtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BONE,
        message.getDefaultOneofBCase());

    message.setBtwo(3);
    assertEquals(0, message.getBone());
    assertFalse(message.hasBone());
    assertTrue(message.hasBtwo());
    assertEquals(3, message.getBtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
        message.getDefaultOneofBCase());

    message.clearBtwo();
    assertEquals(0, message.getBone());
    assertFalse(message.hasBone());
    assertFalse(message.hasBtwo());
    assertEquals(1234, message.getBtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase
            .DEFAULT_ONEOF_B_NOT_SET,
        message.getDefaultOneofBCase());
  });

  it('testInitializeMessageWithOneofDefaults', function() {
    var message =
        new proto.jspb.test.TestMessageWithOneof(new Array(9).concat(567));
    assertEquals(567, message.getAone());
    assertEquals(0, message.getAtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.AONE,
        message.getDefaultOneofACase());

    message =
        new proto.jspb.test.TestMessageWithOneof(new Array(10).concat(890));
    assertEquals(1234, message.getAone());
    assertEquals(890, message.getAtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.ATWO,
        message.getDefaultOneofACase());

    message =
        new proto.jspb.test.TestMessageWithOneof(new Array(9).concat(567, 890));
    assertEquals(1234, message.getAone());
    assertEquals(890, message.getAtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.DefaultOneofACase.ATWO,
        message.getDefaultOneofACase());
  });

  it('testInitializeMessageWithOneofDefaults_defaultNotSetOnFirstField',
      function() {
        var message;

        message =
            new proto.jspb.test.TestMessageWithOneof(new Array(11).concat(567));
        assertEquals(567, message.getBone());
        assertEquals(1234, message.getBtwo());
        assertEquals(
            proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BONE,
            message.getDefaultOneofBCase());

        message =
            new proto.jspb.test.TestMessageWithOneof(new Array(12).concat(890));
        assertEquals(0, message.getBone());
        assertEquals(890, message.getBtwo());
        assertEquals(
            proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
            message.getDefaultOneofBCase());

        message = new proto.jspb.test.TestMessageWithOneof(
            new Array(11).concat(567, 890));
        assertEquals(0, message.getBone());
        assertEquals(890, message.getBtwo());
        assertEquals(
            proto.jspb.test.TestMessageWithOneof.DefaultOneofBCase.BTWO,
            message.getDefaultOneofBCase());
      });

  it('testOneofContainingAnotherMessage', function() {
    var message = new proto.jspb.test.TestMessageWithOneof;
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.
            RECURSIVE_ONEOF_NOT_SET,
        message.getRecursiveOneofCase());

    var other = new proto.jspb.test.TestMessageWithOneof;
    message.setRone(other);
    assertEquals(other, message.getRone());
    assertEquals('', message.getRtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.RONE,
        message.getRecursiveOneofCase());

    message.setRtwo('hi');
    assertUndefined(message.getRone());
    assertEquals('hi', message.getRtwo());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.RecursiveOneofCase.RTWO,
        message.getRecursiveOneofCase());
  });

  it('testQueryingOneofCaseEnsuresOnlyOneFieldIsSetInUnderlyingArray',
     function() {
    var message = new proto.jspb.test.TestMessageWithOneof;
    message.setPone('x');
    assertEquals('x', message.getPone());
    assertEquals('', message.getPthree());
    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PONE,
        message.getPartialOneofCase());

    var array = message.toArray();
    assertEquals('x', array[2]);
    assertUndefined(array[4]);
    array[4] = 'y';

    assertEquals(
        proto.jspb.test.TestMessageWithOneof.PartialOneofCase.PTHREE,
        message.getPartialOneofCase());
    assertUndefined(array[2]);
    assertEquals('y', array[4]);
  });

  it('testFloatingPointFieldsSupportNan', function() {
    var assertNan = function(x) {
      assertTrue('Expected ' + x + ' (' + goog.typeOf(x) + ') to be NaN.',
          goog.isNumber(x) && isNaN(x));
    };

    var message = new proto.jspb.test.FloatingPointFields([
      'NaN', 'NaN', ['NaN', 'NaN'], 'NaN',
      'NaN', 'NaN', ['NaN', 'NaN'], 'NaN'
    ]);
    assertNan(message.getOptionalFloatField());
    assertNan(message.getRequiredFloatField());
    assertNan(message.getRepeatedFloatFieldList()[0]);
    assertNan(message.getRepeatedFloatFieldList()[1]);
    assertNan(message.getDefaultFloatField());
    assertNan(message.getOptionalDoubleField());
    assertNan(message.getRequiredDoubleField());
    assertNan(message.getRepeatedDoubleFieldList()[0]);
    assertNan(message.getRepeatedDoubleFieldList()[1]);
    assertNan(message.getDefaultDoubleField());
  });

});


Twenty Nine people showed up for Murph at 4am on Sunday! Great job, guys and gals!
Remember, Brandon is leading 30 minutes of mobility every Thursday at 5:30pm and Olympic Lifting Every Saturday at 9 am.
We are excited to announce that we are adding a 1 hour Olympic Lifting class with John Every Tuesday at 5pm!
All Levels. Register Online. Olympic lifting will have a 10 person cap and mobility is unlimited.


text:
Did anyone really win the first presidential debate?
President Donald Trump, left, and Democratic presidential candidate former Vice President Joe Biden, right, with moderator Chris Wallace, center, of Fox News during the first presidential debate on Sept. 29, 2020, at Case Western University and Cleveland Clinic, in Cleveland, Ohio. AP Photo by Patrick Semansky
The first presidential debate between Republican incumbent Donald Trump and Democratic challenger Joe Biden was marked more by what it wasn't—a coherent advocacy of policy differences—than what it was. Tuesday's showdown was nearly 90 minutes of cross-talk, interruptions, and shouting that "both men probably lost," said Nicholas Beauchamp, assistant professor of political science at Northeastern University.
So while it frustrated many viewers, the debate likely won't affect the candidates' standings among the voting public, said Beauchamp, who studies political behavior, campaigns, and psychology.
"If one candidate is ahead [going into the debate], and one is behind, and it's just incoherent shouting for an hour and a half, it doesn't help the person who's behind," he said.
Several polls showed Biden ahead of Trump before the debate.
Nick Beauchamp is assistant professor of political science in the College of Social Sciences and Humanities at Northeastern. Photo Matthew Modoono/Northeastern University
"In this case, whichever side was in the lead going in is still winning—inasmuch as they didn't squander their lead," Beauchamp said.
The candidates were so mired in interruptions and off-topic comments (journalist and CNN anchor Jake Tapper described the debate as "a hot mess inside of a dumpster fire inside of a train wreck") that it was nearly impossible to distinguish what their policy positions were, Beauchamp said.
"One of the challenges with this debate is that with so much shouting, it seems silly to try to parse any of their policies, because I'm not even sure that sort of minutiae would have even come through to people watching," he said.
Still, Beauchamp credited moderator Chris Wallace, a journalist and Fox News anchor, for asking Trump and Biden tough questions, then pressing them when they didn't sufficiently answer.
Could the Supreme Court nomination of Amy Coney Barrett backfire on Republicans?
Wallace struggled to maintain control of the debate, but "was asking a fairly large number of hard-hitting questions," Beauchamp said. "If this had been a normal debate, I think we would have seen Trump and Biden struggle to answer."
Wallace asked Trump to denounce white supremacy, and pressed him for a direct statement when he evaded. He asked Biden about his record on policing and race. And the Democrat found himself "trying to thread the needle," Beauchamp said, when Wallace asked Biden whether people should trust scientists for information about COVID-19.
"Unfortunately, it's just hard to believe that these small details could cut through the hailstorm of this debate," Beauchamp said.
Clear strategies did emerge from both camps, however, Beauchamp said.
Have a problem with Trump's low income tax? Blame the tax code.
"What we certainly saw from Trump was a strategy for how to exert dominance," he said, adding that the candidate was likely trying to appeal to his base by "interrupting and harassing" Biden.
Trump also attempted to drive a wedge between far-left voters and Biden by highlighting the differences between Biden's healthcare plan and U.S. Sen. Bernie Sanders' "Medicare for all" policy, and by hammering the fact that Biden doesn't support the Green New Deal.
Biden's strategy, meanwhile, "was to be the type of person you'd vote for if you were tired of Trump but appreciated his toughness," Beauchamp said. "His aim was to seem like a reasonable, sane, firm alternative to Trump."
Both of them probably achieved their goals, Beauchamp said, but what exactly that means for November—and beyond—is anyone's guess.
"Even if Biden wins, normalcy isn't just coming back," said Beauchamp, who worked as an international election observer for the Carter Center prior to joining Northeastern. "The [alt-right group] Proud Boys aren't just going to disappear. Issues raised by the Black Lives Matter movement [for racial justice] aren't going to evaporate.
"One of the things I worry about is what happens in the next election, and the one after that," he said.
For media inquiries, please contact Shannon Nargi at s.nargi@northeastern.edu or 617-373-5718.

redpajama_set_name: RedPajamaCommonCrawl


text:
Manga Directory M
MINAMOTO-KUN MONOGATARI
Minamoto-kun has a face pretty enough to make people think he's a girl. Because of his face, he was bullied by the girls in middle school who were jealous of his face. He developed a fear of women due to the trauma and he ended up attending a high school for boys. Just as he enters college and makes a promise to himself to overcome the trauma of his past, his father remarries and asks him to move out of the house. His father arranges him to live with his aunt (Minamoto-kun's father's younger sister) for the time being. She is an extremely beautiful woman who is also a non-tenured professor at his college. When he arrives at her apartment, she shows him her breasts and tells him that he will be her "guinea pig" in her reverse Hikari Genji project.
410,745 views Minamoto-kun Monogatari Chapter 282: Important Onee-chan
3 years ago the world discovered the existence of humanoid beast creatures and decided to integrate them into our world. In order to make this happen the "Cultural Exchange Between Species Bill" was created since then the cultural exchange program became a huge success helping many spices integrate in to human society. Kurusu Kimihito is a volunteer(?) in this exchange program who has been given a Lamia (Snake Girl) named Mia to take care of. After being together for so long Miia has fallen in love with Kurusu which isn't a bad thing per-say however there is one stipulation in the exchange program that interbreeding between humans and beast creature is strictly forbidden.
250,687 views Monster Musume no Iru Nichijou 63
MAKA-MAKA
From Lililicious: Some of the chapters are just about sex, often in public places, but that isn't all Maka-Maka is about. It's about having someone who tells you your skin looks beautiful in the moonlight. It's about having someone who calls you the night of your birthday, when you're feeling down because you just slept with a guy who turned out to be a jerk, and thanks you for being born because she's so happy to have met you. What is Maka-Maka about? It's about Jun and Nene.
106,205 views Maka-maka 24
"I do not trust humans. They'll betray you without fail." Aur, the man who had obtained the ability and right to become the Maou at the end of his life of research. Summoning the succubus Lilu, he then sets out on creating his own domain, a gigantic labyrinthine dungeon… The misanthropic Maou taking on the world, the curtain rises on a dark harem fantasy!
98,608 views Maou no Hajimekata 23
Mahou Sensei Negima!
Ten-year-old prodigy Negi Springfield, has just graduated from magic academy. He dreams of becoming a master wizard. Instead he's sent to Japan to teach English... at an all - girls high school! All the students are delighted with their cute new teacher- except for Asuna, who resents Negi for replacing the teacher she secretly has a crush on.
96,766 views Mahou Sensei Negima! Vol. 32 Ch. 286 Magia Erebea vs. Negi's Party
Master In My Dreams
http://www.lezhin.com/comic/masterofdream
61,086 views Master in My Dreams 44
MY DOLL HOUSE
60,863 views My Doll House 22
15 years ago the world discovered magic as well as mythical beings (basically beings from various legends) in another dimension. Humankind learned to summon these dangerous mythical beings and use their power to great effect. Seven countries formed contracts with these "gods" and gained their alligence as a result. Gods will chose their summoners on their 14th birthday and give them a stigma. Schools have been set up to train summoners and magical swordsman (basically bodyguards that give the summoners time to cast their spell) as a result. 15 years later after the finding of magic Kazuki Hayashizaki is chosen as a summoner and given a stigma to indicate that. This is surprising since males aren't chosen as summoners due to their low amount of mana compared to females. As the first male to be a summoner Kazuki is under a lot of scrutiny by almost everyone. To complicate matters his sister (who's a magical swordsman) is against him going into summoner school to train there as a summoner. Because summoners and magical swordsman have a cat mouse thing going on where summoners look down on magical swordsman as inferior so his sister naturally is against him going there. She'll stop him even if it means going to war. Kazuki however is determined to thrive in summoner school and have already determined to give it his all. Even if he's the lowest ranked student (ranked E) and his fellow students intend to demean him he'll prove himself as the strongest summoner.
55,214 views Magika no Kenshi to Shoukan Maou 50
ME-TERU NO KIMOCHI
Koizumi, Shintarou is 30 years old, a virgin, and has isolated himself in his room for 15 years. He has become a burden on his father, Koizumi Yasujirou. one day, Shintarou makes a proposition that if Yasujirou gets a girlfriend, Shintarou will come out of his room. It turns out that Yasujirou has already made a girlfriend, a young beautiful woman, Yoshinaga Haruka, who is with Yasujirou for her own personal reasons.Yasujirou and Haruka decide to get married, but Yasujirou dies on their honeymoon. Now Haruka decides to take care of Shintarou, and so this weird "mother and son" are now living together.
50,478 views Me-Teru no Kimochi 28
MASHUMARO ECCHI
An adult body, but childish heart. Heartrending, but sweet. A somewhat bitter high school love story.
49,850 views Mashumaro Ecchi 29
MAGA TSUKI
One day, Yasuke was working up the courage to confess his feelings for his childhood friend Akari. It was the perfect opportunity, since the two of them were going to eat dinner alone together at his family's shrine. Before dinner, he rushes through the daily shrine rituals and accidentally breaks a sacred mirror. A goddess, who looks like a cute girl, curses him for it, and now he will die if he's ever separated from her. All too late, he learns that she's a goddess of misfortune, and horrible things happen around her whenever she's upset. Will he be able to get the goddess to lift the curse? And how will he ever explain this to Akari?
45,128 views Maga Tsuki 65
MUSHOKU TENSEI - ISEKAI ITTARA HONKI DASU
A 34-year-old NEET otaku is chased out from his house by his family. This virgin, plump, unattractive, and penniless nice guy found that his life are going down the path to an end. He then recalled that his life could actually be much better if he can get over the dark history of his life. Just when he was at the point of regret, he saw a truck moving at fast speed, and three high-school students in it's path. Mustering all strength he had, he tried to save them and ended getting run over by the truck, quickly ending his life. The next time he opened his eyes, he is already reincarnated to a world of sword and magic as Rudeus Greirad. Born to a new world, a new life, Rudeus decided that, "This time, I'll really live my life to the fullest with no regret!". Thus start the journey of a man yearning to restart his life.
43,699 views Mushoku Tensei - Isekai Ittara Honki Dasu Chapter 54: Entrance Exam
In a city overflowing with heinous crimes and violence, two girls make it their job to kill criminals who can not be dealt with by police. (Warning: Contains explicit gore and sex in future chapters.)
39,987 views Murcielago 55.5
MAMA WA DOUKYUUSEI
Ever wondered what it would be like if your mother was in your class? Ryou Kisaragi does. Actually the mother to be is none other than his classmate Imai Yuka: a girl who he saw naked in his house one morning, and who is father is remarrying. Now he must juggle his desire for his soon to be mother-in-law and his love for his girlfriend! WHO WILL WIN OUT! -from baka-updates: "About a high school guy who finds out that his new step mother is none other than a classmate from his school."
37,117 views Mama wa Doukyuusei 40
MOUSOU MEGANE
Imagine what you could do if you had glasses that could see through the clothes of that cute classmate you've had a crush on. Or that young teacher that you daydreamed about the entire time during class. Maybe your long time female friend that you never had the courage to ask out. If you could see their beautiful body without them having a clue, what would you do? This is every guy's fantasy played out.
29,846 views Mousou Megane Vol.1 Ch.9
Madan no Ou to Senki
From JCafe : Set in Western Europe during times of war, Eleanor "Ellen" Vertalia, one of the Vanadis of Zhcted, leads the battle into Brune. There are, in fact, seven Vanadis, named for having each received a powerful weapon from the dragon to individually reign over s... From JCafe : Set in Western Europe during times of war, Eleanor "Ellen" Vertalia, one of the Vanadis of Zhcted, leads the battle into Brune. There are, in fact, seven Vanadis, named for having each received a powerful weapon from the dragon to individually reign over seven territories. The power of the Vanadis invokes dread and fear from their enemies. An earl in the service of the country of Brune, a young archer by the name of Tigre, experienced the Vandis's power firsthand after being defeated on the battlefield by Ellen. However, Ellen chose to spare his life after witnessing his skills, but in exchange, he is asked to serve her. Show less
27,589 views Madan no Ou to Senki 51
Mushoku Tensei ~Isekai Ittara Honki Dasu~
A 34-year-old NEET otaku is chased out from his house by his family. This virgin, plump, unattractive, and penniless nice guy found that his life are going down the path to an end. He then recalled that his life could actually be much better if he can get over the dark history of his life. Just when he was at the point of regret, he saw a truck moving at fast speed, and three high-school students in it's path. Mustering all strength he had, he tried to save them and ended getting run over by the truck, quickly ending his life. The next time he opened his eyes, he is already reincarnated to a world of sword and magic as Rudeus Greyrat. Born to a new world, a new life, Rudeus decided that, "This time, I'll really live my life to the fullest with no regret!". Thus start the journey of a man yearning to restart his life.adaptation of the light novel series written by Rifujin na Magonote and illustrated by ShirotakaWeb Novel is now completed and completely translated all to English
25,125 views Mushoku Tensei ~Isekai Ittara Honki Dasu~ Ch. 54 Entrance Exam
MAOU NA ORE TO FUSHIHIME NO YUBIWA
From MangaHelpers: Kusumi Chiharu gets a message one day that he has been selected as a Monster Tamer, and he is prompted to select his first partner. He thinks little of the message until he receives a giant package the following day. He assumes it's the porn books he ordered, but the huge box ends up containing the unconscious body of a mostly naked girl! She's a ghoul named Zonmi, who intends to fight with him as his partner. However, it turns out that other hot girls at his mostly-male high school are also magical creatures, and Zonmi may not be the only one who wants to fight by his side! [tethysdust]
24,677 views Maou na Ore to Fushihime no Yubiwa Vol.3 Ch.19
MOMO NO MUSUME!
After a crazy night, a young teacher is tricked into becoming the father of two gorgeous young girls.
23,455 views Momo no Musume! 4
Maou no Hajimekata - The Comic
"I do not trust humans. They'll betray you without fail." Aur, the man who had obtained the ability and right to become the Maou at the end of his life of research. Summoning the succubus Lilu, he then sets out on creating his own domain, a gigantic labyrinthine dungeon… The misanthropic Maou taking on the world, the curtain rises on a dark harem fantasy!Webcomic:http://www.comic-valkyrie.com/modules/web_valkyrie/maouno/adapted from web novel series of the same name
21,242 views Maou no Hajimekata The Comic Vol. 4 Ch. 23
MAOYUU MAOU YUUSHA - "KONO WATASHI NO MONO TONARE, YUUSHA YO" "KOTOWARU!"
After a long and treacherous journey, our Hero finally arrives at the Dark Lady's castle only to find himself being asked for help. The Hero explains how the war that the demons have brought upon the humans have killed thousands and put more in misery. The queen of demons however argues that this war has made the human society band together as one and showed empirical evidence how it has increased population, increased production, boosted economy and improved society overall. Furthermore, she explains to the Hero that ending this war will result in a civil war that will produce more bloodshed than there ever was. The Hero, convinced that the only way to bring peace, relatively speaking, is to join forces with the Dark Lady, agrees to help with her plans!
17,227 views Maoyuu Maou Yuusha "Kono Watashi no Mono Tonare, Yuusha yo" "Kotowaru!" Vol. 17 Ch. 53 Since that was the girl's wish
Magan&Danai
16,193 views Magan&Danai Ch. 21
MAI NO HEYA
From Manga Updates 18-year-old old Mai Sugimoto is a college student starting this year. She was looking forward to the "college life", but she ends up living with two women because of a realtor's mistake. Furthermore, they are all 18-years-old and share the exact same name, Mai Suigimoto. Hence a life story of three Mai(s) full of fun and erotic excitement begins. Can these three girls get along?
15,674 views Mai no Heya 29
The story starts off with a flashback, Kuzumi Taiga is asked at his school entrance interview what he would do if he could use magic. "Take over the world" is his reply, followed by an outburst of laughter from a very cute girl. Not much remains in his memory after those events, but he does remember the girl and she is somehow involved in him failing to enter the school of his choice. Wandering around outside of aforementioned school the next day, he gets mistaken for a student ditching class by one of the teachers, and get\'s pulled into the school through a magic barrier he did not notice. He is in fact a student with no magical ability at all, and it just so happens this is a magic school.
15,632 views Mx0 77.5
My Balls
The fate of the world rests on one man's shoulders. Or, to put it more exactly, it rests on his balls. In a freak sealing accident the Queen of Terror is sealed into Satou Kohta's balls, thus preventing her from reigning destruction on the world. However a lesser devil, Elyse, h... The fate of the world rests on one man's shoulders. Or, to put it more exactly, it rests on his balls. In a freak sealing accident the Queen of Terror is sealed into Satou Kohta's balls, thus preventing her from reigning destruction on the world. However a lesser devil, Elyse, has been sent up to Earth to release the Queen at all costs. The only way to do so is to make Kohta ejaculate, and Elyse only has 30 days to do it. The battle for mankind has begun, in Kohta's pants! Show less
11,947 views My Balls 41
Teranouchi Bon is an average teenager except for one thing: his imagination. As a virgin, he uses his wild and vivid imagination and envisions himself in a sexual relationship with Ichihara Ibuki, one of the heroines from one of his favorite TV shows from when he was a child. Bon finds out that one of his new schoolmates is the beautiful Mitsuba Touko, who he used to be childhood friends with, and his life soon becomes chaotic. But just when Bon thought life could not get crazier, his world is turned upside down when he learns that the new school nurse is none other than Mitsuba Touko, the actress who played Ichihara Ibuki, his imaginary lover.
10,745 views Motori 5
Browse Manga by Genres
Magical Girls
Matsumoto Tomokicomedy
Romance Shoujo
Shoujoai
Shounenai
[No Chapters]
Browse Manga by Years
Browse Manga by Initial Alphabetic
Browse Manga by Status
Author(s):Tsukuda Yuuto Views: 1,930,272 Released:Jun 14, 2019
From Dan of Population GO: Yukihira Souma's dream is to become a full-time chef in his father's restaurant and surpass his father's culinary skill. But just as Yukihira graduates from middle schools his father, Yukihira Jouichirou, closes down the restaurant to cook in Europe. A... From Dan of Population GO: Yukihira Souma's dream is to become a full-time chef in his father's restaurant and surpass his father's culinary skill. But just as Yukihira graduates from middle schools his father, Yukihira Jouichirou, closes down the restaurant to cook in Europe. Although downtrodden, Souma's fighting spirit is rekindled by a challenge from Jouichirou which is to survive in an elite culinary school where only 10% of the students graduate. Can Souma survive? Show less
Shokugeki no Soma Ch. 315 Shokugeki No Soma End
RULER OF THE LAND
Author(s):Jun Gook Jin Views: 1,663,160 Released:Jun 03, 2019
An intricate story revolving around Han Bi Kwang as he follows a hero's journey. Just throw in a historic setting, ancient weapons, and a riveting plotline and you have one of the most highly-acclaimed manwha, a definite must-read. From ADV: Bi-Kwang and Hwa-Rin try in vain to shake ---Sang Pil "Gold Cobra" Jin and his men, but ultimately they are forced to defend themselves. Unfortunately, Bi-Kwang and Hwa-Rin lose, and the Sword of the Flowers is taken from them. Bi-Kwang and Hwa-Rin regroup, pursuing Sang Pil Jin in an effort to retrieve the sword-but then Sang Pil and his men learn that Bi-Kwang and Hwa-Rin aren't the only ones after them. Sang Pil's superior, Master Yoo, has learned that Sang Pil planned to keep the sword for himself, and has approached Shi-Yun, leader of the Black Serpents, for help. The lives of Bi-Kwang, Hwa-Rin, Sang Pil Jin, and his men are all in danger, as Master Yoo and the Black Serpents join forces and search for the sword together.
Ruler of the Land 561
HATSUKOI (KAKINE)
Author(s):Kakine Views: 833,925 Released:Apr 11, 2015
Ryuuji and Ushio haven't seen each other for fifteen years. It was supposed to be a happy reunion between childhood friends, but because of something that happened long ago, the relationship between the two is strained...?! Taking place in the worn down apartment, "Haitsukoiwa", four omnibus love stories that make the heart flutter are unfolding.
Hatsukoi (Kakine) 5.5
GREEN WORLDZ
Author(s):Osawa Yusuke Views: 643,219 Released:Feb 08, 2016
Plants have taken over the planet. In 2017, the vegetation in Tokyo rose up and toppled human society in moments. The few survivors are forced to live in the relative safety of a subway network, but supplies are running low. Join an average high school student named Akira as he challenges the plants in a struggle for survival!
Green Worldz ch.112
Author(s):Matsuena Syun Views: 555,322 Released:Jul 28, 2015
[From Anime Waves]:Shirahama Kenichi is a book lover who has just entered high school, but he is often bullied by others. One day, he became good friends with the new transfer student, Fuurinji Miu, who was also looking for a friend. Kenichi was shocked at how powerful she is at first, but he is still somehow attracted to her...so he later goes to the dojo of her family and starts a training that will change his lifeNOTE:This is the Neo-version of "Tatakae! Ryouzanpaku Shijou Saikyou no Deshi" (A martial arts manga by the same author and featuring many similar characters and events)Here's the link: http://www.tenmanga.com/book/HISTORY%27S+STRONGEST+DISCIPLE+KENICHI.html
History's Strongest Disciple Kenichi 576.5
Author(s):Amazume Ryuta Views: 473,388 Released:Dec 25, 2016
Kaoru is a 17-year old virgin who has a SM fetish. He always dreams about a SM relationship with his childhood friend Nana. One day Kaoru's mom decides to hide all his SM toys so he'll study for a change, by asking Nana to hide his toys. Nana finds the leather one-piece that Kaoru bought and tries it on but she accidentally locks it and doesn't have the key!
Nana to Kaoru 156
Author(s):Honmyou Wakou Views: 469,268 Released:Jul 08, 2019
Kido Tatsuhiko moved to Tokyo to attend an art school and start his new life. In his new room, there's a small hole in the wall. At first he can see nothing through the small hole, but one night, through the peeping hole, he saw a girl. That's how his new life starts.
Nozoki Ana Vol.5 Chapter 45.5
Author(s):HIRAMOTO Akira Views: 465,684 Released:Apr 28, 2019
Hachimitsu Academy, known for its strict academic standards and even stricter school code, is making a giant change this year. In the first time in school history, they are allowing boys to be admitted. As Fujino Kiyoshi starts his first day at Hachimitsu Academy he is shocked to find out that there are only four other guys in the entire school, making the ratio of girls to boys 200:1. And to their dismay, not one of the thousand girls will talk to them or even acknowledge them. But Kiyoshi and the guys are about to find out about the shadow student council that has been threatening the female students about interacting with male students.
Prison School Vol. 28 Ch. 277.5 End of Play
Author(s):Inaba Minori Views: 410,745 Released:Jul 13, 2019
Minamoto-kun Monogatari Chapter 282: Important Onee-chan
Author(s):Sasuga Kei Views: 401,185 Released:Jun 26, 2019
From MangaHelpers: Tonight, Natsuo loses his virginity. His partner? Her name is Rui and he just met her today after school. She's the one that brought up this whole situation, stating that she wanted to simply gain the knowledge about sex. She does not want to start a relationship, nor does she care about Natsuo. Afterwards, Natsuo feels guilty for losing his virginity to a girl he doesn't even particularly like. Mostly, it makes him feel like he betrayed his crush to his high school teacher: Hina. A quirky love triangle story unfolds as Natsuo, Rui, and Hina all end up becoming part of the same family! [DrCoke] ------------------------------- Our main character has a pretty big crush on one of his teachers. So much so when he later meets a girl that looks a lot like his crush he immediately accepts her advances. Later he is shocked to find out his crush will be moving in with him due to a marriage arrangement his father entered into, but that isn't the only surprise. That girl he had previously met and his crush are actually sisters and she will be moving in too!
Domestic na Kanojo Chapter 235: Respond In Kind
Wagamama Basic
Author(s):Fuuki Mame Views: 8 Released:22 hours ago
Salaryman Aizawa Haruomi detests human beings. Because of this, he has never gotten along with those in his company. One day, Haruomi goes to the hair salon run by his brother, but there he only finds Yasa, a happy-go-lucky, ignorant youth. Yasa is troubled because he cannot find a hairstyle model, yet he still has to practice cutting and styling real hair somehow. After styling Haruomi's hair, they become friends and frequently go out to eat together. Haruomi gradually opens up his heart to Yasa.
Wagamama Basic Vol. 1 Ch. 1
Wol-hwa x Mok-gum
Author(s):Ssongru Views: 13 Released:Jul 16, 2019
Wol-hwa x Mok-gum 1.2
I Want to Be a Prince!
Author(s):Kairin Views: 8 Released:Jul 16, 2019
I Want to Be a Prince! Ch. 0 Prologue
Wife of God
Author(s):Lee Huchu Views: 9 Released:Jul 16, 2019
Wife of God Ch. 1
Kare no Shouzou
Author(s):NISHIDA Higashi Views: 5 Released:Jul 14, 2019
Not-so-prodigal son Natsuki, whose mother is a famous artist, came home to get some cash (or something that he can sell). Only to get caught and mistaken for a robber by a stranger in his own home. Turns out that, the stranger is a student/assistant artist named Asou, that Natsuki's mother has allowed to lodge in their house. Asou seemed like a polite, delicate flower and Natsuki enjoyed picking on him. One night, Natsuki takes a trip to an infamous gay bar and sees Asou there. Asou was showing a different face there. At first, Natsuki thought it was a mistake. He goes back again and meets Asou face-to-face and finds out about his true and horrible personality....
Kare no Shouzou Ch. 1
Touhou - Netamashit Revolution (Doujinshi)
Author(s):471 (Circle), Katari Views: 5 Released:Jul 13, 2019
Touhou Netamashit Revolution (Doujinshi) Oneshot
Author(s):Higashiyama Show Views: 45 Released:Jul 13, 2019
Riding high on the memory of a boy named Hikaru with whom she spent a day during her last year of grade school, Megu went through middle school without romance. Now that she's a high school student, she has decided she is finally completely over her first love and can look towards the future. But! Megu meets a pretty girl on her first day of high school who gives her a big hug, and her name is Hikaru?!
Prism Ch. 6.7 Extra 4koma Manga
Dependency X
Author(s):Jǐn Hǎi Bù Yú Views: 6 Released:Jul 13, 2019
【omegaverse】a perverted alpha seme X a contributing omega uke. The dailies of a young love, a display of affection that kills many normal people, "My reliance on you, is like the earth revolving around the sun, the planet revolving around the sun, and the universe revolving around the stars "
Dependency X Ch. 1 Bite Mark
Kimi no Nioi
Author(s):Sagano Hiwo Views: 7 Released:Jul 13, 2019
A reunion after 7 years. And I'm still in love with Hijiri… Ito, a hairdresser, decided to rent a share-house in Tokyo. As he moved in, he noticed a sweet, nostalgic scent. On the same day, another person was moving into the house. It was Takehisa Hijiri, his close friend that he fell in love with! Ito ends up getting excited whenever he smells Hijiri's scent. Because it was between men – a love that will never come true – he thought of giving up, but his body still reacts?!
Kimi no Nioi Vol. 1 Ch. 1
Nameless Ancient Style ABO
Author(s):Kǎi Xuán Views: 7 Released:Jul 13, 2019
Funny ABO manhua, such a name as Nameless ABO. What to do when encountered with a strong O? The only way is to to marry him.
Nameless Ancient Style ABO Ch. 1
Ohigara mo Yoku
Author(s):Masao Sangatsu Views: 11 Released:Jul 12, 2019
From the time he was very young, Shuuta longed to be "married" through adoption to Kouhei. While Kouhei, as a guardian, was too absentminded, Shuuta always felt as if he never fulfilled his duties to him as a "wife". It's a love story between an airheaded, thick-skinned, handsome "husband" and an innocent, pure-hearted new "wife" – with an age gap!
Ohigara mo Yoku Vol. 1 Ch. 2


text:
Funeral Service Cost Near Me Largo FL 33779
Respect and reverence in handling a human body must not be sacrificed for financial benefits, said the statement. While we recognize the need for human body donations for medical research, compassion, at all times, must be provided to a family's deceased love one. Supersize My Funeral ': How is the Obesity Epidemic in the U.S. impacting on the Funeral Industry? Family Flowers only. Donations if desired to Ardgowan Hospice. Having the tail of a sheep: The dreamer has a lucky son who will survive him. Largo. The space, located on 4th Street, below York Street, is now used by Spalding University as its student center and boasts an Ali quote in the space as a tribute to The Greatest's humble beginnings: Relieves loved ones from having to guess what you would have wanted. If funds are available, request that the funds be applied toward the funeral/burial/cremation costs. While they were puzzling over this, behold, two men in dazzling garments appeared to them. They were terrified and bowed their faces to the ground. Most families hold services, which help the bereaved cope with the loss of a loved one. These services can involve viewing and visitation of the deceased, followed by a funeral service, after which cremation takes place.
When you place your order, I'll mail out a postage-paid kit you can use to send the ashes of your loved one to me. Sorry, there was a problem flagging this post. Please try again now or at a later time. Copyright © 2016 - Pet Cremation Services of Tidewater. All Rights Reserved On how she once romanticized crematory work, and how that compared with reality Also called a partitioned cremation, this option places multiple pets in the same chamber. Though they each have their own partition, co-mingling of ashes does occur. No one in New York City's northern suburbs lists and sells more of the region's most prestigious homes than Houlihan Lawrence. Buy Casket Largo Florida
For example, many investigative reports claimed to have the interests of the lower classes in mind when making recommendations about curtailing the costs of funerals. Words are few, thoughts are deep, Memories of you we will always keep. These facilities may be burial spaces alongside trails, special gardens or indoor or outdoor columbariums. Those who served our nation in the Armed Forces deserve respect from their communities. Our national social contract to veterans includes the benefits and services provided by the Department of Veterans Affairs. This question, repeated for ease of reference, asks:
If your money is held in a trust, in some states your family members may be able to strip down your funeral service arrangements and receive cash back. Hawaii Funeral Flowers Sympathy flowers Honolulu HI Monday, November 17 2014 11:22 AM EST2014-11-17 16:22:49 GMT The doctors agreed with her and told her they wished more people would do things the same way. Francis Schaeffer was taken home, and Edith surrounded his bed with the things he loved, and had music playing in his room. Alternative Funeral Services Largo Florida Before selecting a specific service or provider, you may wish to review some useful guides, such as the Federal Trade Commission's "Funeral Rule Compliance Guidelines". Some of the other types of merchandise you may select are: urn vaults, cremation urns, clothing, keepsakes and stationary. Before the funeral, the casket is placed near the main entrance of the Cathedral. As the funeral Mass begins, the procession (accompanied by instrumental music) enters from the Sacristy and proceeds down the main aisle. Or would you prefer a memorial focusing on the achievements and contributions of the deceased? It's actually all the same, according to Fares J. Our hearts continue to be with the Shabazz family during this most difficult time. kAmrF?4:= q=F77D !=:46 r2AE %55 (655F D2:5 3642FD6 7 E96 2?E:4:A2E65 ?F36C 7 G69:4=6D :? E96 AC46DD:? E E96 466E6CJ E96C6 2C6 6IA64E65 E 36 D6 56=2JD E =42= EC277:4 7=H :? E96 =:DE65 2C62D 7C 2AACI:2E6=J ib 2 E aib AkAm Though the apostle calls death the last enemy—yet it is the best friend! "To me to die is gain!" In the United States , a sitting president while in office will immediately issue a presidential proclamation allowing for the flag of the United States to be flown at half-staff upon the death of principal figures in the federal government, such as a former president, and others, as a mark of respect to their memory. Funeral Poems that Can Be Read Before Releasing White Doves
Hence cooking has to be done by other Namboothiri families, not having Pula relationship with this family. They can also be included in an obituary or on a monument. The funeral reading articles below will help you express the feelings we are facing and are unable to put into words. It turned out that they were not; instead, I was advised after the fact, that they were placed in Wappingers Falls. After spending quite a bit of time with the owners via email and phone re: inaccuracies on their website and what was being advised to Veterinarians, I was advised they would not alert Vets to the changes that took place because it would impact their business adversely. Cette autorisation est accorde sur les justifications suivantes : You must create a free account in order to read or download this book. We do not employ an answering service, so when you contact us, you will speak directly with a member of our staff. Licensed funeral directors are available to provide prompt and caring service 24 hours a day, 7 days a week, 365 days a year. doesn't work N. There's about 12 snow sims freeplay cheat doesn't I just got an e-mail a few days ago from Hartsdale Pet Cem that they are having a celebration and I would like to go but I have a wedding that day. For the following reasons, we are convinced that the practice of cremation should be rejected by God's people: Does the price include all courier and paper work fees ? All other road rules still apply. If the lead car gets too far ahead of the procession the driver will normally stop and wait for the procession to catch up. Very often, the bigger the company, the greater the cost, why is this? - it's because they are employing myriad levels of management, boards of directors, area managers, assistant, marketing & financial managers, funeral arrangers, conductors, operatives etc.
FREE DELIVERY FREE MILES FREE GAS UP TO 50% OFF SELECT VEHICLES MON-THURS. Funeral Service Cost Largo In the basest of terms - cremation burns everything but the bones. The process takes between 2 and 2.5 hours and what is left are the skeletal remains. Henryk Tauber, a member of a Sonderkommando that worked in Cremas 1, 2 and 5, recalled after the war: "We worked in two shifts, a day shift and a night shift.
A private burial will take place at Cave Hill Cemetery. These records are kept in a secure location and made accessible to the regulatory authority, which ensures we comply with the law. Mr. Sellars at the end of Otherland , also by Tad Williams In the 14th century, the Italian poet, Dante Alighieri, wrote a trilogy of books tracing his imaginary journey through hell, purgatory, and then heaven. At Funeral Data Manager, the design of our software reflects this deep insight into what it really means to be funeral service professionals. A child of God who was seriously ill and lacked assurance of salvation said to his physician, "Doctor, although I'm a Christian, I'm afraid to die. The remembrance of the heart, spirit and soul of your loved one is a treasure which only you and your family can truly know and cherish.
Buy Casket Alternative Funeral Services


text:
The Power of Place: In and Around Stogursey where past and present meet…
"Like those of other living things, our structure, development, and behavior rise from a genetic foundation sunk in an environmental context." p.16 'The Power of Place' by Winifred Gallagher 1993 (note before the advent of consumer DNA testing)
It has been some time since I promised to expand upon my trip to England in April of this year. I have wanted to get to it, but something held me back each time, as if I could not see it clearly just yet. With the recent discovery of a connection between our WHEATON Group B and VERBEECK (BEKE) and a Norman/Flemish/Celtic common ancestry there is more focus which makes stitching the bits and pieces together a little clearer.
On my list of places to visit in Devon and Somerset the last one: Stogursey. It was prompted by a single record:
5 Jul 1599 in the parish of St. Andrews, Stogursey: Robert Wheaddon married to Joan HUISH also spelled Johanne Huyshe.
Perhaps the Robert we are looking for is a child of this Robert? The baptism's for St. Andrews begin in 1609—too late to have recorded the baptism of our Robert. Across the channel in Flemingston, Wales are 2 baptisms to a Christopher Wheaton in 1601 and 1602. Flemingston was named for John Fleming, one of the twelve knights who came with Robert Fitz Hamon, in the time of William Rufus son of William the Conqueror. While visiting the church in nearby St Deucmans there are windows dedicated to Welsh saints Decumans, Petroc and Carnatoc.—we like to think of these places as separate but they were not. Like the channel between France and England that between England and Wales was negotiated for thousands of years.
Den and Jean Wheaton chauffeured me all over Devon and Somerset exploring possible connections to the various WHEATON groups but one of my main missions was to look for a place that "felt" connected to Robert WHEATON of Rehoboth, Massachusetts. It is admittedly a rather odd way to conduct genealogical research, but lacking a specific homeland it seemed as good a way as any. My trip's purpose was to get the lay of the land, meet my long time friend and fellow WHEATON researcher, Jean, her husband Dennis and hope that a place called to me.
We had driven the whole length of Devon from North to South and back North again through Somerset and I loved it, all the while I kept thinking could this be the place? Or this? The beautiful coasts, verdant valleys and windswept moors were very much to my liking. As we drove from St. Deucmans near Watchet to Stogursey I found myself saying, "yes, this feels like it." Please note the original name was Stoke Curci or Coursey.
The lowlands between St. Deucmans and Stogursey resemble the area around Rehoboth, Massachusetts. The swamp lands, the forests, the grazing areas and most of all the water! Both Stogursey and Rehoboth are just inland from a major channel that leads out to the Atlantic Ocean. And they both lie elevated but not too much above sea level. This area also has the requisite forests yielding bark, rivers with ample water and the grazing land that would produce the livestock from which the hides that would be needed for a tanner like Robert WHEATON.
Stogursey: Elevation 111′ annual Rainfall 36″, distance to Bristol Channel 2 miles
Rehoboth (original Rehoboth, now Runford, RI): Elevation 62′, Annual rainfall 46″, distance to Providence River 1 mile
Since my return and with my curiosity piqued I have plenty of circumstantial evidence that suggests an origin in this area would make sense. Although it may not be this specific place beginning here seems as good a place as any. Below is one of my photo of the remains of Stogursey Castle with the spire of St. Andrew's Church of Stogursey in the distance.
Stogursey Castle
The National Trust now holds the property and describes:
"Stogursey Castle's origins lie with William the Conqueror's need to consolidate his new kingdom. He granted the manor of Stoke to William de Falaise who built a castle on the site as one of a chain running from Dunster to Montacute, to protect Somerset from invasion from the sea. It seems de Falaise did not build the typical motte (defensive mound) since the remains of a later, stone building have been found beneath the existing mound. Instead, his defences took the form of the 'castle ringwork', a hall or keep with a timber stockade, on a flat area defended by a strong bank and a ditch."
I find this remark a bit curious as in the surrounding area the most important landmarks date back thousands of years, suggesting to me that perhaps the site of this castle was an earlier Celtic hill fort or settlement. If I were to venture a guess, Bell Beaker Celts may have inhabited this place, later to be supplanted by invading Roman armies and then rebuilt yet again by the Norman conquerors. The bridge dates to the 13th century and was uncovered during renovation. The gatehouse retains 16th century roof timbers. The history of this area like all of the isles is like peeling back an onion, with layers and layers of habitation lying hidden beneath our feet.
Let's take for example the nearby "Wick Barrow" also called the "Pixie's Mound" which is about 1.75 miles due north of Stogursey adjacent the Bristol Channel:
"Wick Barrow is a rare example of a Neolithic round barrow, dating from about 6,000 years ago. It measures about 25 metres in diameter and 1.5 metres high. A barrow is a name given to a structure for buying the dead….It is roughly 7.5 miles from Bridgwater in the parish of Stogursey, Somerset. It was excavated by Harold St George Gray in 1907….The majority of the burials found by Gray lay above, but mostly within the area of the walled enclosure. The main burials included three crouched skeletons dating to the late Neolithic, about 4,400 years ago. Skeleton 1 was accompanied by a bell shaped beaker. Skeletons 2 and 3 were accompanied by long-necked beakers and flint tools." https://archaeologyathinkleypoint.wordpress.com/wick-barrow/
This video about the mound is entered into a 2015 competition next month in Italy. https://m.youtube.com/watch?v=Bqd7RJO57yM
Let me remind you about the Bell Beakers from the map I posted earlier:
From Wiki:
The Bell Beaker culture is understood not only as a particular pottery type, but as a complete and complex cultural phenomenon involving metalwork in copper, gold and later bronze, archery, specific types of ornamentation and shared ideological, cultural and religious ideas. The Bell Beaker period marks a period of unprecedented cultural contact in Atlantic and Western Europe on a scale not seen previously, nor again seen in succeeding periods… from c. 2400 BCE (Before Current Age= BC) Bell Beaker expanded eastwards over parts of Central and Eastern Europe. Beaker-type vessels remained in use longest in the British Isles; late beakers in other areas are classified as early Bronze Age…The new international trade routes opened by the Beaker people became firmly established and the culture was succeeded by a number of Bronze Age cultures…
The importance of these localized finds must be viewed within the larger context of recent discoveries and the serendipity that life engenders. As any of you who have followed me awhile— everything leads to something else—and that is sometimes why I have a hard time bringing it all together. I posted this on my FACEBOOK page on September 9th:
My 5 yr old Grand-daughter's creation with US states puzzle pieces. I said, "That looks like Stonehenge." She said, "What's Stonehenge?" So I pulled out some books and showed her some photos but they did not show the scale so we went online and found some with people in it. She said, "Those are huge." Then we talked about where the stones had come from and how long ago it was built….Then later on the news, she says "Nona, look Stonehenge." It was the discovery of the new buried stones north of Stonehenge. She was so excited and so was I.
http://www.bbc.com/news/uk-england-wiltshire-34156673
So whether we are talking the ancient Neolithic and Bronze age Bell Beakers, the Romans, Normans or more recent travelers, our lives and those of our ancestors are ones of a huge network of relationships. The areas of science that deal with these things whether, linguistics, archaeology, anthropology or genetics often have a difficult time integrating the various elements and even a harder time of making the connection to us. But let us try—
Back in Stogursey, when looking for more information before my trip I came across this: A large hoard of late 3rd century Roman coins found in 1999 in Stogursey including 1,097 basal silver radiates, 50 copper allow coins and pottery vessel remains dating from 276 CE (AD). There was also a Bronze Age gold ornament found at the same time, but it is not considered to be part of this hoard. Near Stolford just to the right (East) of this photo on the beach are the remains of a submerged forest dated to 2500 BCE.
As soon as I started looking for connections they began to surface everywhere. After my return I was notified of DNA from a study conducted in the Bristol area which found three men bearing the same FGC22501 mutation that our WHEATON Y chromosome uncovered. The estimated age of the L2 mutation (parent of FGC22501) is about 4200 hundred years ago, so FGC22501 must have happened more recently. You might remember this map of the Bristol study area. It ends along the River Parrett about 5 miles away from Stogursey.
So what makes that important? Well we have at least 3 males that carry the same ancient Y-DNA mutation FGC22501 within a short distance of Stogursey. We have a Robert Wheddon marrying in the right time frame and since to date the only other men in England to carry these mutations are a TRIPP from Lincolnshire, a KIDD of unknown origins in England and a WHIFFING from Surrey these are the closest data points to the target area. Then this past month we got our most exciting DNA match with a VERBEECK form Belgium who is a wealth of information on Norman-Flemish and Celtic families and movements.And VERBEECK and TRIPP share another 7 downstream mutations bringing the time frame to a MRCA (Most Recent Common Ancestor) probably about 700-1000 years ago. In other words about the time of the Norman conquest.
So we combine DNA datasets with historical facts, and migrations and we start to build some likely scenarios that connect the dots. And one of the dots is a relationship between the Church of St. Andrew's and its association with l'abbeye de Lonlay in Normandy, France its mother foundation. Below is the photo I took from within St. Andrew's church. So one of the ways that DNA may have come to this area is via Norman invaders and settlers. William de Falaise or a member of his entourage or one of the many other Norman Counts may be the connection. A rough guestimate might place the FGC22501 SNP at about 1500 BCE so certainly a possible Bronze age time frame making those Bell Beakers a very real possibility. Where it occurred is not known, but most likely in one of the pockets of Bell Beakers shown on the above map. Although our thoughts are pulled towards the idea that this SNP occurred on mainland Europe we must always keep in mind the possibility that it occurred in the British Isles and moved in a counter-intuitive direction–even as this is less likely.
It is certainly a very real possibility that it came with the Normans. To this day the parish maintains ties with the mother house in Lonlay. Falasie is about 30 miles form Lonlay. William de Falaise had holdings in Devon, Dorset, Somerset and Wiltshire. The Domesday book records 17 holdings in Devon a mere 3 in Somerset but include Stogursey, Woodspring and Wooton Courtney. Woodspring was given to him by Serlo de Burcy whose daughter William married. In comparison large land owners like William de Mohun who held Dunster, Watchet, and Cutcombe (Wheddon Cross) and a much higher number of properties across the same four counties. The point being the connections between the Norman-Flemish and the north Somerset area of England and the DNA of 6 men from England and their counterparts in Belgium and Romania. Lest we be too hasty in our conclusions it is possible that some of the FGC225001 matches migrated earlier with the Flemish-Roman soldiers or even earlier with the Bell Beakers…too soon to tell. What I can say is that there has been a long-standing interchange of genes and trade between Northern France, Flanders and the Bristol channel area.
Entrance to St. Andrew's Well
Stogursey Castle Walls
For now let me leave you with this lovely description from the "Land of the Quantock: A Descriptive and Historical Account" By Rev. William H.P. Greswell. 1903 p139:
"The scene is peaceful enough all around the castle…Castle, church, priory, mill, and pound [pond], all side by side, show in their complete form the outlines of the Norman village. Down the valley is the sea that roars on "Shurton Bars," not far off the thriving port in old days of Stoverd of Stolford. The deep and well-worn lane leasing straight from the old gateway, seems to point seawards and to the Parret [River,] as if this castle meant to guard the access to the sea. It is the sea that has imparted the breath of adventure to this Norman fortress. Down by the landing-place the chapel of St. Michael's stood, long since a ruin. [at Stolford]."
← Newest Findings: Four and half years later
Two branches of a family reunited after decades apart →