Remove earplug slowly with twisting motion to gradually break the seal. Do not pull cord to remove from ear. Rapid removal may damage eardrum. Keep away from infants and small children. These earplugs are non-toxic, but may interfere with breathing if caught in windpipe, or if cord is wrapped around neck, which could lead to serious injury or death.


Evoking fireworks in dark blue and white, Saktuk and Victoria design a comfortable cotton robe for men. Bali's traditional batik technique is used to create them. Classic front-wrap styling, wide kimono style sleeves and a matching tie belt make a handsome combination.
This handpainted batik robe is a truly original work of art. Sunlight, water, dye and temperature all factor into the look of the finished robe. This should be considered a unique design made especially for you. colours and pattern placement will vary.


International agreements not concluded as treaties and therefore not covered by the Vienna Convention on the Law of Treaties play an important role in international relations. Often states prefer non-treaty obligations as a simpler and more flexible foundation for their future relations. The difference lies mainly in the parties' wish to model their relationship in a way that excludes the application of treaty or customary law on the consequences of a breach of obligations. This restriction does not justify discarding such agreements as being of a `political' or `moral' nature only. It would appear more appropriate to consider the extent to which the parties chose to bind themselves and what legal consequences they wanted to attach to their agreement, even though non-treaty agreements are not a source of law in the sense of Article 38 para. 1 of the Statute of the International Court of Justice. The relationship may best be described as a self-contained regime whose characteristics depend on the parties' intentions in the specific case. The introduction of some of the rules of treaty law and general principles of law into that regime may be appropriate. Considerations of good faith may also help to integrate and supplement the parties' agreement.
And when that good man saw how things were, he very sensibly obeyed the promise he had freely given.
Political documents have long been adopted not only in the form of treaties, but also as non-treaty arrangements. And states have treated such arrangements with the utmost seriousness. As early as 1934, Karl Strupp2 suggested that greater attention should be given to this type of agreement. Wengler has considered the subject in depth several times over the past three decades. In 1995 he wrote:3 `what is involved in such agreements cannot be ascertained from statements by the foreign office lawyers, nor has it really been explained in the literature'. To tackle the subject undoubtedly constitutes quite a challenge. It takes us beyond the safe bounds of the legal sources canonized in Article 38 of the Statute of the International Court of Justice and leads us into difficult and controversial dogmatic terrain.
There is quite clearly a broad area of situations in which states enter into commitments without concluding a formal treaty under international law. I will refer to these arrangements as `non-treaty agreements', although I find the term `soft law', attributed to McNair, very revealing precisely because it is a contradiction in terms. `Non-treaty agreement' is of course a general term which covers a variety of types of agreements. I will not attempt to develop a more exact definition for the purposes of this article.
Non-treaty agreements should, however, be differentiated from true gentlemen's agreements. These latter are personal pledges given by officials, on pain, as it were, of their reputation, but they are in no way binding on the officials' own states or, indeed, even on their successors in office.4 They concern personal, not government, action. The literature makes reference to an early example of such an agreement, when Lord Salisbury accepted the Russian occupation of Georgia `à titre personnel'.5 Rotter6 notes the 1954 Moscow Memorandum on the Austrian State Treaty, at least as far as the pledge on the part of the Austrians is concerned. Heads of government continue to make such pledges today. However, the concept of pledging one's own reputation, one's honour, cannot be simply transferred to relations between states.7 The oral London gentlemen's agreement of 1946 on the regional distribution of seats on the UN Security Council, the 1956 agreement on the same issue in the UN International Law Commission and the so-called Luxembourg compromise of 1966 on voting procedures in the EEC Council of Ministers would not constitute gentlemen's agreements in this sense. Similarly, a distinction should probably be drawn between non-treaty agreements and `inter-agency agreements', which are expressly intended to be binding only on governments or on specific ministries or authorities and not on states, as far as that is possible.
We should also distinguish between those non-treaty agreements that we shall be considering in this article and arrangements in the form of treaties which contain - either in whole or in part - obligations which cannot be implemented due to their lack of specificity; such arrangements are also often referred to as `soft law'. According to Lauterpacht,8 they are `provisions ... void and inapplicable on account of uncertainty and unresolved discrepancy'. Precision or lack thereof is not, however, an appropriate criterion for determining whether an agreement is binding or not.9 Thus, the commitment in Article 5 of the NATO Treaty of 4 April 1949 to the effect that each party will take `such action as it deems necessary' does not mean that this is not a genuine treaty obligation to be observed by all parties.10 Treaties remain treaties even if there are only minimal possibilities for responding to infringements or if the justification for non-fulfilment or withdrawal from the treaty is largely left to the discretion of the state under obligation. Admittedly, such treaties pose particular problems, as their fulfilment is largely subject to good faith. This may ultimately approximate them to non-treaty agreements.
* agreements can be made with parties that other parties to the agreement are not willing to recognize.
It may be necessary to conclude a non-treaty agreement simply in order to reach an agreement at all. The wholesale criticism that international law is thus being `softened'12 does not seem, in this author's opinion, to be justified. There is an equally strong danger of elusive results for both treaties and non-treaty agreements. Indeed, it has frequently been the case that a text which has been laid down at a conference as a non-treaty-binding standard gradually becomes, as awareness grows, a binding and possibly a `hard' obligation. The results of the Copenhagen Meeting on the Human Dimension (1990) concerning the protection of minorities have thus been inserted in Germany's `hard' neighbourhood agreements with Poland and the CSSR (1991, 1992). I also believe that concerns such as those put forward by Schwarzenberger of a `proliferation of a para-international law with negative implications for the credibility of international law as a whole'13 are somewhat exaggerated.
The fact that, when assessed realistically, the difference between a treaty and the binding `political' effect of a non-treaty agreement is not as great to a politician as is often thought may also play a role in the decision to opt for a non-treaty form of agreement. Even treaties, if they are not simply to exist on paper, are dependent on continuing cooperation between states. And when that willingness to cooperate diminishes, it is unlikely that attempts will be made to enforce them either in court or through reprisals - owing to anticipated costs and political consequences - even if such possibilities do exist from a legal point of view. Like non-treaty agreements, treaties may also rely on an intermediate stage in the development of relations. Rotter14 has posited some interesting ideas on the strategic reasons behind states' choice to conclude non-treaty agreements. In line with the `prisoner's dilemma', the behaviour of those involved will be made predictable for the joint (minimum) benefit, even without enforceable rules. Both non-treaty agreements and treaties are complied with to largely the same extent.15 `Soft law' may sometime be `pré-droit' in the sense that it leads to treaty obligations. This is, however, generally far from being its purpose.
3 Are Agreements Binding Only in the Form of a Treaty?
In terms of legal dogma there now arises the question: In the field of agreements intended by those involved to be normative, is there merely a choice between international treaties on the one hand and exclusively `political' or moral commitments on the other? Or is there an intermediate area covering non-treaty, but binding, agreements, which entail certain repercussions under international law that are less extensive than those incurred under treaties?
The subject is not new. It has been considered by Wengler16 as well as Münch,17 Viralli18 and Rotter19 (1971). It enjoyed a renaissance in the 1970s in relation to the CSCE, and as reflected in resolutions of the UN General Assembly and the UN International Covenant on Economic, Social and Cultural Rights. In 1984 Thürer20 delivered his inaugural lecture at the University of Zurich on the subject. A further impetus for such considerations came from the 1992 Rio Summit. Detailed studies by Hensel21 and Klabbers22 appeared in 1991 and 1996 respectively. Non-treaty multilateral agreements are of growing importance, particularly in the fields of international economic relations and environmental protection. It is not my intention here to discuss the question of whether agreements produce political or moral obligations for states, apart from their binding effect under international law. In its 1950 advisory opinion on the International Status of South West Africa,23 the International Court of Justice stated that it was not the Court's business `to pronounce on political or moral duties'. What we are concerned with is the legal force of such agreements.
Let us return to the intention of parties to be bound by agreements they conclude: it is recognized that states are free to design the agreements they enter into. Can they conclude an agreement, then, with the same degree of obligation as holds in the case of international treaties - in other words, with consequences such as compensation and reprisals - with, however, the understanding that it is not an international treaty but merely a `political' agreement? This would seem to be impossible because the fact that the agreement supposedly lacks the force of a treaty contradicts the full intention of the parties to be bound by it.29 In terms of constitutional law, this could be an abuse of legal form in order to circumvent obligations imposed on a government by the constitution.


text:
Brockenbrough, John W. [editor]
REPORTS OF CASES DECIDED BY THE HONOURABLE JOHN MARSHALL, LATE CHIEF JUSTICE OF THE UNITED STATES, IN THE CIRCUIT COURT OF THE UNITED STATES [TWO VOLUMES]
Philadelphia: James Kay, Jun. & Brother, 1837. First Edition. Octavos, 2 volumes; VG; newly rebound in quarter light brown leather, dark brown leather boards, marbled endpapers; paneled spines with gilt lettering; scattered pencil markings; very mild age-toning; extremely scarce; shelved case 1.
9-42-1317952
Full title continues: for the District of Virginia and North Carolina, from 1802 to 1833 inclusive;
"Brockenbrough...took certain liberties with Marshall's drafts, regularizing his spelling and punctuation, for example, and occasionally improving what he regarded as infelicitous phrasing. He misdated certain opinions and in one instance misidentified an opinion as issuing from the circuit court at Richmond in 1819 that in fact was prepared for a Supreme Court Case of 1813" [The Brig Caroline v. U.S., 11 U.S. (7 Cranch) 496 (1813)] The original manuscript survives for sixty-four of the eighty-eight court opinions reported by Brockenbrough. Late in life, Marshall gave his circuit drafts to Brockenbrough, who, after publishing them in 1837, presented them to the American Philosophical Society in Philadelphia, where they repose today. [Charle F. Hobson, Editing Marshall, 33 J. Marshall L. Rev. 823 (2000)]
See all items in Dupont Circle, Law, US History
See all items by John W. Brockenbrough

redpajama_set_name: RedPajamaCommonCrawl


Converting Taiwanese chhùn to decameters value in the length units scale.
TOGGLE : from decameters into Taiwanese chhùn in the other way around.
Convert length measuring units between Taiwanese chhùn (寸 cùn) and decameters (dam - dkm) but in the other reverse direction from decameters into Taiwanese chhùn.
This online length from 寸 cùn into dam - dkm converter is a handy tool not just for certified or experienced professionals.
0.0030 dam - dkm is converted to 1 of what?
The decameters unit number 0.0030 dam - dkm converts to 1 寸 cùn, one Taiwanese chhùn. It is the EQUAL length value of 1 Taiwanese chhùn but in the decameters length unit alternative.
How to convert 2 Taiwanese chhùn (寸 cùn) into decameters (dam - dkm)? Is there a calculation formula?
1. in practicing Taiwanese chhùn and decameters ( 寸 cùn vs. dam - dkm ) values exchange.
How many decameters of length are in 1 Taiwanese chhùn? The answer is: The change of 1 寸 cùn ( Taiwanese chhùn ) unit of length measure equals = to 0.0030 dam - dkm ( decameter ) as the equivalent measure for the same length type.
In principle with any measuring task, switched on professional people always ensure, and their success depends on, they get the most precise conversion results everywhere and every-time. Not only whenever possible, it's always so. Often having only a good idea ( or more ideas ) might not be perfect nor good enough solution. If there is an exact known measure in 寸 cùn - Taiwanese chhùn for length amount, the rule is that the Taiwanese chhùn number gets converted into dam - dkm - decameters or any other length unit absolutely exactly.
Conversion for how many decameters ( dam - dkm ) of length are contained in a Taiwanese chhùn ( 1 寸 cùn ). Or, how much in decameters of length is in 1 Taiwanese chhùn? To link to this length Taiwanese chhùn to decameters online converter simply cut and paste the following.
The link to this tool will appear as: length from Taiwanese chhùn (寸 cùn) to decameters (dam - dkm) conversion.
The length converter from 寸 cùn ( Taiwanese chhùn ) measure to dam - dkm ( decameters ) equivalent.


text:
Christophe Offredi
Submitted by guitar-list on Mon, 2015-09-14 08:09
musical style:
To begin, the name of this band will maybe remember something to some of you . Indeed, it's the title of a song appearing on the first album of French HEAVY METAL band DREAM CHILD. But this is not due to hazard because the founding member of this band is none other than Gérard FOIS, a singer influenced by Geoff TATE, Carl ALBERT, Rob HALFORD, Ronnie James DIO and David COVERDALE ( playing also the keyboard parts, co writer of the music and author of all the lyrics of its previous band) who decided in the beginning of 2001 to split DREAM CHILD after 2 albums (the 2nd one was released worldwide by METAL BLADE RECORDS!) and 3 demos whose later was released in 2000 with a different line up than the one on the albums.
With this strong experience, he decided to come back on new basis without forgetting its roots, the name ETERNAL FLIGHT becoming a natural choice. Still based in Annecy (France) and motivated to release songs he wrote for DREAM CHILD and other ideas, he decided to rise from the ashes with a new project in february 2001 with guitar player Christophe OFFREDI , fan of guitarists like Steve VAI, John PETRUCCI , but also since he's a child, of David GILMOUR who gave him the love of the note that sounds right and that you have to play with feeling. Christophe presented Gérard to Nicolas JEANPIERRE, bass player and eternal (!) fan of QUEEN, also loving the progressive sides of DREAM THEATER and RUSH and liking a lot, it's quite easy to understand, their bass players. At first, Gérard preferred working the rhythms and the drum parts with a sequencer because the drummers available and able to play this type of music aren't easy to find in this area! Since, the trio began to orient their songs in a melodic, elaborated POWER METAL with Progressive touches. As the band didn't want to be put in a box, each song, even if it wasn't breaking the cohesion of the whole, possessed a particular touch. Like this "Beyond…" is a melodic Speed Metal Anthem, « Back into the light (Renaissance) » moves you in an elegant but Heavy atmosphere lightened by Symphonic passages , « Guardians » reveals itself as an effective mid-tempo with a catchy chorus. This for the demo. Other songs like « The Moon King » will transport you in a kaleidoscope of moods and variations, the ballad « Secret place » in the deep shadows of melancholy, « Real » into the future, whereas the aggressive « New world » and "Morphoenix" will shake your spine. And they still have some other surprises hidden in their magic hat…. At the same time that he was writing and arranging songs , Gérard bought some sound equipment to build its home studio baptized MORPHOENIX® (also the name of their mascot since the beginning and also the name of one of their song) and learned to master these technologies.
In November 2001, Arnaud GORBATY, an all around talented drummer also member of the band ALKEMYST, accepted to complete the line -up in order to work on the recording of the demo and to prepare the first shows. February the 16th, the group did a nearly sold out show for its first flight live at the APOCALYPSE CLUB in their hometown. It gave everybody a great motivation for the future also knowing that the crowd gave 'em a warm welcome. June 2002 saw the release of their demo cd (with a cover artwork executed by Jean-Pascal FOURNIER :AVANTASIA-EDGUY-NIGHTMARE-IMMORTAL…). After that, the band was getting really good reviews all over the world with their demo. The band did a few shows after but Arnaud was unable to continue with the band due to its commitment with ALKEMYST and for professional reasons. The band had to wait until February 2003 to find a replacement in Alexandre STELLINI who was coming from the Thrash/melodic Death scene and whose influences come from people like Vinnie PAUL, Igor CAVALERA, Dave LOMBARDO, Mike PORTNOY to name a few. Alex introduced the band to Sébastien VIBERT in April 03, a keyboardist, fan of Jens JOHANSSON, Jordan RUDESS, coming from the same area as him in order to allow more freedom on stage to Gérard, to avoid the use of sequences and give a more technical and varied approach to the use of the keyboard in the band. Until that moment the band worked hard to arrange the songs altogether in order to play live.
This happened first in Annecy at the outdoor event "La fête de la musique" on the 21st of June 2003 in front of more than 1500 enthusiast people! In the summer and autumn the band played a few other concerts, with especially a strong performance at the HEAVY METAL BREAKDOWN festival near Grenoble where the band played in front of 600 Metal maniacs. At the same period the band continued to work on old and new songs. But 2003 was also the year where Gérard contacted some labels worldwide getting immediate interest from CRUZ DEL SUR MUSIC, coming from Italy and taking care of bands like PHARAOH and ENSOPH. After negotiations a licence deal was settled in early 2004 and the band began the recording of their first album in various places, Gérard taking care of the production with its mobile home studio finishing with the mix in mid July .In order to give the final touch to an already strong sound it was decided that the mastering would be done by the talented Luigi STEFANINI at the NEW SINS STUDIOS (LABYRINTH, DARK MOOR etc) in Italy. Happy with the musical and sound aspects, ETERNAL FLIGHT wished that the artwork would be done by someone really gifted and the band was lucky to find out that Geoffrey GILLESPIE (an illustrator who works with DORO and did also some work for WARLOCK and ELP!) was living in their hometown and that he was available and motivated by the project! So Geoffrey presented this impressive artwork representing again the Morphoenix ® in action in a futuristic atmosphere, screaming in victory giving sense to the title of the album "Positive Rage". The name of the album comes from a few lines of the song "Back into the light" and present the fact that creation is an act of positive rage and every time you create something you are re-born (so you can find the connections between this concept and their mascot who is a mix between a phoenix, an eagle, a human, and Morpheus whose concept was originally coming out of Gérard's mind). The lyrics deals with fantasy, science fiction stuff but also more personal, philosophic and poetic views on life and the world.
In mid October 2004, the album was released worldwide and in Japan the record came out through SPIRITUAL BEAST the 27th of November with 2 bonus tracks, "Nouveau monde" and "Lieu secret" with new vocal versions of "New world" and "Secret place" but this time sang in French! Since, the band played in a regular basis on stage (playing shows with PARAGON, DARK MOOR and ELLIPSIS for example) a place where the band kicks ass and gain respect and success, and the promotion given to the album through reviews , interviews and advertisements helped the band to impose their name on the Metal scene. In the autumn of 2005, the band entered Morphoenix studio again to work on a new 4 songs demo only for the purpose of finding-consolidating deals with labels for a new album (songs chosen at the time where "Edge of fire, "Dark society", "Next ones on the list" and "Ghost (with a different soul)". It was also a way to show to the business, new songs done as a team effort and not mostly Gérard's ideas like it was done for the first album.
Interest came from labels, so the band continued writing songs until June 2006. During this period, the band decided to part way with Alex the drummer because of differences of view on how the band should work. But the split was done in a friendly way, the proof being that Alex entered Morphoenix studio with the band for the recording of the 2nd album the 10th of August. So he played on "Dark society", "Under the sign of will", "Forgotten Side" and "Deaf, Dumb , Blind", the rest of the songs being done by none other than Arnaud Gorbaty, who then decided a while after the recording to replace him permanently ! The album was recorded and mixed by Gérard in various times until December. After that, He sent it to labels that showed interest with the demo and concluded deals with Thundering/Pervade Productions for Europe and rest of the world except USA, Canada and Central America for a license with Nightmare Records, something really rare for a French band playing this style! Musically, the band retains the Power and the Progressive elements of the 1st album but done in a more mature way and showing their ability to write songs as a team, daring to experiment and explore new musical landscapes or to remain fast, aggressive, efficient yet melodic. Up tempos and force are clearly defined on songs like "Edge of fire", "Next ones on the list", "Miracle Man", "Deaf, dumb , blind", melodies and more refined arrangements are developed on "Forgotten Side", "Friends" (including a duet with ELLISPIS's Emmanuelson on vocals!) , "Ghost" and the mix of both elements in songs like "Under the sign of will", "Dark society" and "The curse"! The result being an album of elegant force! Lyrically the songs are about the pursuit of one's goal besides adversity ("Edge Of Fire"), the fight of the Morphoenix against political and religious leaders evil action plotting together against peace in the world in a fictional environment ("Dark society", "Under the sign of will"), the need to return to nature's beauty and creation and preserve it ("The forgotten side"), the tendency of the human race to lead toward destruction and apocalypse and not wanting to take the responsibility out of it, always hiding behind religion and searching for scapegoats ("Deaf, dumb, blind"), a society obliged to cannibalism after having erased all the other species ("Next ones on the list"), the friendship and need to preserve personal integrity in a plastic society ("Friends"), a human capable of creating events and tragedies with his mind but unable to control them ("The curse"), a spy- soldier rebelling against hierarchy after having being changed into a bionic man ("Miracle man"), a person witnessing the change of another one because of nightmares and tragedies, the later becoming only a ghost of the person that used to be ("Ghost- with a different soul"). To top it all, the artwork was nicely done by Benj. The concept of the zodiacal wheel isn't coming from the band's love for astrology, it was more done to point out that every person has also the cards in its own hands and the will to change things! The Morphoenix, the 13th sign, is there to be a representation of the willingness to act and reborn through pain and adversity. The band is also planning the shoot of a video clip and doing more concerts in various territories! ! Be prepared for a music of Elegant Force from Eternal Flight!!!
RM Read more about Christophe Offredi on Last.fm. User-contributed text is available under the Creative Commons By-SA License; additional terms may apply.
Gear used by Christophe Offredi
Christophe Offredi electric guitars
VIGIER Excalibur Custom
Christophe Offredi links
Eternal Flight
2001 to ?
Eternal Flight official homepage
Eternal Flight discography
Eternal Flight myspace


text:
package com.google.cloud.tools.jib.gradle;

import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import com.google.cloud.tools.jib.api.CacheDirectoryCreationException;
import com.google.cloud.tools.jib.api.Containerizer;
import com.google.cloud.tools.jib.api.InvalidImageReferenceException;
import com.google.cloud.tools.jib.api.JavaContainerBuilder;
import com.google.cloud.tools.jib.api.JavaContainerBuilder.LayerType;
import com.google.cloud.tools.jib.api.JibContainerBuilder;
import com.google.cloud.tools.jib.api.JibContainerBuilderTestHelper;
import com.google.cloud.tools.jib.api.RegistryImage;
import com.google.cloud.tools.jib.api.buildplan.AbsoluteUnixPath;
import com.google.cloud.tools.jib.api.buildplan.FileEntriesLayer;
import com.google.cloud.tools.jib.api.buildplan.FileEntry;
import com.google.cloud.tools.jib.api.buildplan.FilePermissions;
import com.google.cloud.tools.jib.configuration.BuildContext;
import com.google.cloud.tools.jib.filesystem.DirectoryWalker;
import com.google.cloud.tools.jib.filesystem.TempDirectoryProvider;
import com.google.cloud.tools.jib.gradle.extension.JibGradlePluginExtension;
import com.google.cloud.tools.jib.plugins.common.ContainerizingMode;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.ByteStreams;
import com.google.common.io.Resources;
import com.google.common.truth.Correspondence;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.StringJoiner;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import org.gradle.api.JavaVersion;
import org.gradle.api.Project;
import org.gradle.api.artifacts.dsl.DependencyHandler;
import org.gradle.api.file.FileCollection;
import org.gradle.api.java.archives.internal.DefaultManifest;
import org.gradle.api.logging.Logger;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.plugins.JavaPluginConvention;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.bundling.War;
import org.gradle.jvm.tasks.Jar;
import org.gradle.testfixtures.ProjectBuilder;
import org.hamcrest.CoreMatchers;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;

/** Test for {@link GradleProjectProperties}. */
@RunWith(MockitoJUnitRunner.class)
public class GradleProjectPropertiesTest {

  private static final Correspondence<FileEntry, Path> SOURCE_FILE_OF =
      Correspondence.transforming(FileEntry::getSourceFile, "has sourceFile of");
  private static final Correspondence<FileEntry, String> EXTRACTION_PATH_OF =
      Correspondence.transforming(
          entry -> entry.getExtractionPath().toString(), "has extractionPath of");
  private static final Correspondence<File, Path> FILE_PATH_OF =
      Correspondence.transforming(File::toPath, "has Path of");

  private static final Instant EPOCH_PLUS_32 = Instant.ofEpochSecond(32);

  /** Helper for reading back layers in a {@link BuildContext}. */
  private static class ContainerBuilderLayers {

    private final FileEntriesLayer resourcesLayer;
    private final FileEntriesLayer classesLayer;
    private final FileEntriesLayer dependenciesLayer;
    private final FileEntriesLayer snapshotsLayer;

    private ContainerBuilderLayers(BuildContext buildContext) {
      resourcesLayer = getLayerByName(buildContext, LayerType.RESOURCES.getName());
      classesLayer = getLayerByName(buildContext, LayerType.CLASSES.getName());
      dependenciesLayer = getLayerByName(buildContext, LayerType.DEPENDENCIES.getName());
      snapshotsLayer = getLayerByName(buildContext, LayerType.SNAPSHOT_DEPENDENCIES.getName());
    }

    private static FileEntriesLayer getLayerByName(BuildContext buildContext, String name) {
      List<FileEntriesLayer> layers = buildContext.getLayerConfigurations();
      return layers.stream().filter(layer -> layer.getName().equals(name)).findFirst().get();
    }
  }

  private static Path getResource(String path) throws URISyntaxException {
    return Paths.get(Resources.getResource(path).toURI());
  }

  @Rule public final TemporaryFolder temporaryFolder = new TemporaryFolder();

  @Mock private TempDirectoryProvider mockTempDirectoryProvider;
  @Mock private Supplier<List<JibGradlePluginExtension<?>>> mockExtensionLoader;
  @Mock private Logger mockLogger;

  private GradleProjectProperties gradleProjectProperties;
  private Project project;

  @Before
  public void setUp() throws URISyntaxException, IOException {
    when(mockLogger.isDebugEnabled()).thenReturn(true);
    when(mockLogger.isInfoEnabled()).thenReturn(true);
    when(mockLogger.isWarnEnabled()).thenReturn(true);
    when(mockLogger.isErrorEnabled()).thenReturn(true);

    Path projectDir = getResource("gradle/application");
    project =
        ProjectBuilder.builder()
            .withName("my-app")
            .withProjectDir(projectDir.toFile())
            .withGradleUserHomeDir(temporaryFolder.newFolder())
            .build();
    project.getPlugins().apply("java");

    DependencyHandler dependencies = project.getDependencies();
    dependencies.add(
        "compile",
        project.files(
            "dependencies/library.jarC.jar",
            "dependencies/libraryB.jar",
            "dependencies/libraryA.jar",
            "dependencies/dependency-1.0.0.jar",
            "dependencies/more/dependency-1.0.0.jar",
            "dependencies/another/one/dependency-1.0.0.jar",
            "dependencies/dependencyX-1.0.0-SNAPSHOT.jar"));

    // We can't commit an empty directory in Git, so create (if not exist).
    Path emptyDirectory = getResource("gradle/webapp").resolve("WEB-INF/classes/empty_dir");
    Files.createDirectories(emptyDirectory);

    gradleProjectProperties =
        new GradleProjectProperties(
            project,
            mockLogger,
            mockTempDirectoryProvider,
            mockExtensionLoader,
            JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME);
  }

  @Test
  public void testGetMainClassFromJar_success() {
    Jar jar = project.getTasks().withType(Jar.class).getByName("jar");
    jar.setManifest(
        new DefaultManifest(null).attributes(ImmutableMap.of("Main-Class", "some.main.class")));

    assertThat(gradleProjectProperties.getMainClassFromJarPlugin()).isEqualTo("some.main.class");
  }

  @Test
  public void testGetMainClassFromJar_missing() {
    assertThat(gradleProjectProperties.getMainClassFromJarPlugin()).isNull();
  }

  @Test
  public void testGetMainClassFromJarAsProperty_success() {
    Property<String> mainClass =
        project.getObjects().property(String.class).value("some.main.class");

    Jar jar = project.getTasks().withType(Jar.class).getByName("jar");
    jar.setManifest(new DefaultManifest(null).attributes(ImmutableMap.of("Main-Class", mainClass)));

    assertThat(gradleProjectProperties.getMainClassFromJarPlugin()).isEqualTo("some.main.class");
  }

  @Test
  public void testGetMainClassFromJarAsPropertyWithValueNull_missing() {
    Property<String> mainClass = project.getObjects().property(String.class).value((String) null);

    Jar jar = project.getTasks().withType(Jar.class).getByName("jar");
    jar.setManifest(new DefaultManifest(null).attributes(ImmutableMap.of("Main-Class", mainClass)));

    assertThat(gradleProjectProperties.getMainClassFromJarPlugin()).isNull();
  }

  @Test
  public void testIsWarProject() {
    project.getPlugins().apply("war");
    assertThat(gradleProjectProperties.isWarProject()).isTrue();
  }

  @Test
  public void testGetInputFiles() throws URISyntaxException {
    Path applicationDirectory = getResource("gradle/application");

    List<Path> extraDirectories = Arrays.asList(applicationDirectory.resolve("extra-directory"));
    FileCollection fileCollection =
        GradleProjectProperties.getInputFiles(
            project, extraDirectories, JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME);

    assertThat(fileCollection)
        .comparingElementsUsing(FILE_PATH_OF)
        .containsExactly(
            applicationDirectory.resolve("build/classes/java/main"),
            applicationDirectory.resolve("build/resources/main"),
            applicationDirectory.resolve("dependencies/dependencyX-1.0.0-SNAPSHOT.jar"),
            applicationDirectory.resolve("dependencies/dependency-1.0.0.jar"),
            applicationDirectory.resolve("dependencies/more/dependency-1.0.0.jar"),
            applicationDirectory.resolve("dependencies/another/one/dependency-1.0.0.jar"),
            applicationDirectory.resolve("dependencies/libraryA.jar"),
            applicationDirectory.resolve("dependencies/libraryB.jar"),
            applicationDirectory.resolve("dependencies/library.jarC.jar"),
            applicationDirectory.resolve("extra-directory"));
  }

  @Test
  public void testConvertPermissionsMap() {
    Map<String, String> map = ImmutableMap.of("/test/folder/file1", "123", "/test/file2", "456");
    assertThat(TaskCommon.convertPermissionsMap(map))
        .containsExactly(
            "/test/folder/file1",
            FilePermissions.fromOctalString("123"),
            "/test/file2",
            FilePermissions.fromOctalString("456"))
        .inOrder();

    Exception exception =
        assertThrows(
            IllegalArgumentException.class,
            () -> TaskCommon.convertPermissionsMap(ImmutableMap.of("path", "invalid permission")));
    assertThat(exception)
        .hasMessageThat()
        .isEqualTo("octalPermissions must be a 3-digit octal number (000-777)");
  }

  @Test
  public void testGetMajorJavaVersion() {
    JavaPluginConvention convention =
        project.getConvention().findPlugin(JavaPluginConvention.class);

    convention.setTargetCompatibility(JavaVersion.VERSION_1_3);
    assertThat(gradleProjectProperties.getMajorJavaVersion()).isEqualTo(3);

    convention.setTargetCompatibility(JavaVersion.VERSION_11);
    assertThat(gradleProjectProperties.getMajorJavaVersion()).isEqualTo(11);

    convention.setTargetCompatibility(JavaVersion.VERSION_1_9);
    assertThat(gradleProjectProperties.getMajorJavaVersion()).isEqualTo(9);
  }

  @Test
  public void testGetMajorJavaVersion_jvm8() {
    Assume.assumeThat(JavaVersion.current(), CoreMatchers.is(JavaVersion.VERSION_1_8));

    assertThat(gradleProjectProperties.getMajorJavaVersion()).isEqualTo(8);
  }

  @Test
  public void testGetMajorJavaVersion_jvm11() {
    Assume.assumeThat(JavaVersion.current(), CoreMatchers.is(JavaVersion.VERSION_11));

    assertThat(gradleProjectProperties.getMajorJavaVersion()).isEqualTo(11);
  }

  @Test
  public void testCreateContainerBuilder_correctSourceFiles()
      throws URISyntaxException, InvalidImageReferenceException, CacheDirectoryCreationException {
    ContainerBuilderLayers layers = new ContainerBuilderLayers(setupBuildContext());

    Path applicationDirectory = getResource("gradle/application");
    assertThat(layers.snapshotsLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(
            applicationDirectory.resolve("dependencies/dependencyX-1.0.0-SNAPSHOT.jar"));
    assertThat(layers.dependenciesLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(
            applicationDirectory.resolve("dependencies/dependency-1.0.0.jar"),
            applicationDirectory.resolve("dependencies/more/dependency-1.0.0.jar"),
            applicationDirectory.resolve("dependencies/another/one/dependency-1.0.0.jar"),
            applicationDirectory.resolve("dependencies/libraryA.jar"),
            applicationDirectory.resolve("dependencies/libraryB.jar"),
            applicationDirectory.resolve("dependencies/library.jarC.jar"));
    assertThat(layers.resourcesLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(
            applicationDirectory.resolve("build/resources/main/resourceA"),
            applicationDirectory.resolve("build/resources/main/resourceB"),
            applicationDirectory.resolve("build/resources/main/world"));
    assertThat(layers.classesLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(
            applicationDirectory.resolve("build/classes/java/main/HelloWorld.class"),
            applicationDirectory.resolve("build/classes/java/main/some.class"));

    List<FileEntry> allFileEntries = new ArrayList<>();
    allFileEntries.addAll(layers.snapshotsLayer.getEntries());
    allFileEntries.addAll(layers.dependenciesLayer.getEntries());
    allFileEntries.addAll(layers.classesLayer.getEntries());
    allFileEntries.addAll(layers.resourcesLayer.getEntries());
    Set<Instant> modificationTimes =
        allFileEntries.stream().map(FileEntry::getModificationTime).collect(Collectors.toSet());
    assertThat(modificationTimes).containsExactly(EPOCH_PLUS_32);
  }

  @Test
  public void testCreateContainerBuilder_noClassesFiles()
      throws InvalidImageReferenceException, IOException {
    Project project =
        ProjectBuilder.builder()
            .withProjectDir(temporaryFolder.newFolder())
            .withGradleUserHomeDir(temporaryFolder.newFolder())
            .build();
    project.getPlugins().apply("java");

    gradleProjectProperties =
        new GradleProjectProperties(
            project,
            mockLogger,
            mockTempDirectoryProvider,
            mockExtensionLoader,
            JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME);

    gradleProjectProperties.createJibContainerBuilder(
        JavaContainerBuilder.from(RegistryImage.named("base")), ContainerizingMode.EXPLODED);
    gradleProjectProperties.waitForLoggingThread();
    verify(mockLogger).warn("No classes files were found - did you compile your project?");
  }

  @Test
  public void testCreateContainerBuilder_correctExtractionPaths()
      throws InvalidImageReferenceException, CacheDirectoryCreationException {
    ContainerBuilderLayers layers = new ContainerBuilderLayers(setupBuildContext());

    assertThat(layers.dependenciesLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly(
            "/my/app/libs/dependency-1.0.0-770.jar",
            "/my/app/libs/dependency-1.0.0-200.jar",
            "/my/app/libs/dependency-1.0.0-480.jar",
            "/my/app/libs/libraryA.jar",
            "/my/app/libs/libraryB.jar",
            "/my/app/libs/library.jarC.jar");
    assertThat(layers.snapshotsLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly("/my/app/libs/dependencyX-1.0.0-SNAPSHOT.jar");
    assertThat(layers.resourcesLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly(
            "/my/app/resources/resourceA",
            "/my/app/resources/resourceB",
            "/my/app/resources/world");
    assertThat(layers.classesLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly("/my/app/classes/HelloWorld.class", "/my/app/classes/some.class");
  }

  @Test
  public void testCreateContainerBuilder_war()
      throws URISyntaxException, IOException, InvalidImageReferenceException,
          CacheDirectoryCreationException {
    Path unzipTarget = setUpWarProject(getResource("gradle/webapp"));

    ContainerBuilderLayers layers = new ContainerBuilderLayers(setupBuildContext());
    assertThat(layers.dependenciesLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(unzipTarget.resolve("WEB-INF/lib/dependency-1.0.0.jar"));
    assertThat(layers.snapshotsLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(unzipTarget.resolve("WEB-INF/lib/dependencyX-1.0.0-SNAPSHOT.jar"));
    assertThat(layers.resourcesLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(
            unzipTarget.resolve("META-INF"),
            unzipTarget.resolve("META-INF/context.xml"),
            unzipTarget.resolve("Test.jsp"),
            unzipTarget.resolve("WEB-INF"),
            unzipTarget.resolve("WEB-INF/classes"),
            unzipTarget.resolve("WEB-INF/classes/empty_dir"),
            unzipTarget.resolve("WEB-INF/classes/package"),
            unzipTarget.resolve("WEB-INF/classes/package/test.properties"),
            unzipTarget.resolve("WEB-INF/lib"),
            unzipTarget.resolve("WEB-INF/web.xml"));
    assertThat(layers.classesLayer.getEntries())
        .comparingElementsUsing(SOURCE_FILE_OF)
        .containsExactly(
            unzipTarget.resolve("WEB-INF/classes/HelloWorld.class"),
            unzipTarget.resolve("WEB-INF/classes/empty_dir"),
            unzipTarget.resolve("WEB-INF/classes/package"),
            unzipTarget.resolve("WEB-INF/classes/package/Other.class"));

    assertThat(layers.dependenciesLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly("/my/app/WEB-INF/lib/dependency-1.0.0.jar");
    assertThat(layers.snapshotsLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly("/my/app/WEB-INF/lib/dependencyX-1.0.0-SNAPSHOT.jar");
    assertThat(layers.resourcesLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly(
            "/my/app/META-INF",
            "/my/app/META-INF/context.xml",
            "/my/app/Test.jsp",
            "/my/app/WEB-INF",
            "/my/app/WEB-INF/classes",
            "/my/app/WEB-INF/classes/empty_dir",
            "/my/app/WEB-INF/classes/package",
            "/my/app/WEB-INF/classes/package/test.properties",
            "/my/app/WEB-INF/lib",
            "/my/app/WEB-INF/web.xml");
    assertThat(layers.classesLayer.getEntries())
        .comparingElementsUsing(EXTRACTION_PATH_OF)
        .containsExactly(
            "/my/app/WEB-INF/classes/HelloWorld.class",
            "/my/app/WEB-INF/classes/empty_dir",
            "/my/app/WEB-INF/classes/package",
            "/my/app/WEB-INF/classes/package/Other.class");
  }

  @Test
  public void testCreateContainerBuilder_noErrorIfWebInfClassesDoesNotExist()
      throws IOException, InvalidImageReferenceException {
    temporaryFolder.newFolder("WEB-INF", "lib");
    setUpWarProject(temporaryFolder.getRoot().toPath());

    assertThat(
            gradleProjectProperties.createJibContainerBuilder(
                JavaContainerBuilder.from("ignored"), ContainerizingMode.EXPLODED))
        .isNotNull();
  }

  @Test
  public void testCreateContainerBuilder_noErrorIfWebInfLibDoesNotExist()
      throws IOException, InvalidImageReferenceException {
    temporaryFolder.newFolder("WEB-INF", "classes");
    setUpWarProject(temporaryFolder.getRoot().toPath());

    assertThat(
            gradleProjectProperties.createJibContainerBuilder(
                JavaContainerBuilder.from("ignored"), ContainerizingMode.EXPLODED))
        .isNotNull();
  }

  @Test
  public void testCreateContainerBuilder_noErrorIfWebInfDoesNotExist()
      throws IOException, InvalidImageReferenceException {
    setUpWarProject(temporaryFolder.getRoot().toPath());

    assertThat(
            gradleProjectProperties.createJibContainerBuilder(
                JavaContainerBuilder.from("ignored"), ContainerizingMode.EXPLODED))
        .isNotNull();
  }

  @Test
  public void testGetWarFilePath() throws IOException {
    Path outputDir = temporaryFolder.newFolder("output").toPath();

    project.getPlugins().apply("war");
    War war = project.getTasks().withType(War.class).getByName("war");
    war.getDestinationDirectory().set(outputDir.toFile());

    assertThat(gradleProjectProperties.getWarFilePath())
        .isEqualTo(outputDir.resolve("my-app.war").toString());
  }

  @Test
  public void testGetWarFilePath_bootWar() throws IOException {
    Path outputDir = temporaryFolder.newFolder("output").toPath();

    project.getPlugins().apply("war");
    project.getPlugins().apply("org.springframework.boot");
    War bootWar = project.getTasks().withType(War.class).getByName("bootWar");
    bootWar.getDestinationDirectory().set(outputDir.toFile());

    assertThat(gradleProjectProperties.getWarFilePath())
        .isEqualTo(outputDir.resolve("my-app.war").toString());
  }

  @Test
  public void testGetWarFilePath_bootWarDisabled() throws IOException {
    Path outputDir = temporaryFolder.newFolder("output").toPath();

    project.getPlugins().apply("war");
    War war = project.getTasks().withType(War.class).getByName("war");
    war.getDestinationDirectory().set(outputDir.toFile());

    project.getPlugins().apply("org.springframework.boot");
    project.getTasks().getByName("bootWar").setEnabled(false);

    assertThat(gradleProjectProperties.getWarFilePath())
        .isEqualTo(outputDir.resolve("my-app.war").toString());
  }

  @Test
  public void testGetDependencies() throws URISyntaxException {
    assertThat(gradleProjectProperties.getDependencies())
        .containsExactly(
            getResource("gradle/application/dependencies/library.jarC.jar"),
            getResource("gradle/application/dependencies/libraryB.jar"),
            getResource("gradle/application/dependencies/libraryA.jar"),
            getResource("gradle/application/dependencies/dependency-1.0.0.jar"),
            getResource("gradle/application/dependencies/more/dependency-1.0.0.jar"),
            getResource("gradle/application/dependencies/another/one/dependency-1.0.0.jar"),
            getResource("gradle/application/dependencies/dependencyX-1.0.0-SNAPSHOT.jar"))
        .inOrder();
  }

  private BuildContext setupBuildContext()
      throws InvalidImageReferenceException, CacheDirectoryCreationException {
    JavaContainerBuilder javaContainerBuilder =
        JavaContainerBuilder.from(RegistryImage.named("base"))
            .setAppRoot(AbsoluteUnixPath.get("/my/app"))
            .setModificationTimeProvider((ignored1, ignored2) -> EPOCH_PLUS_32);
    JibContainerBuilder jibContainerBuilder =
        gradleProjectProperties.createJibContainerBuilder(
            javaContainerBuilder, ContainerizingMode.EXPLODED);
    return JibContainerBuilderTestHelper.toBuildContext(
        jibContainerBuilder, Containerizer.to(RegistryImage.named("to")));
  }

  private Path setUpWarProject(Path webAppDirectory) throws IOException {
    File warOutputDir = temporaryFolder.newFolder("output");
    zipUpDirectory(webAppDirectory, warOutputDir.toPath().resolve("my-app.war"));

    project.getPlugins().apply("war");
    War war = project.getTasks().withType(War.class).getByName("war");
    war.getDestinationDirectory().set(warOutputDir);

    // Make "GradleProjectProperties" use this folder to explode the WAR into.
    Path unzipTarget = temporaryFolder.newFolder("exploded").toPath();
    when(mockTempDirectoryProvider.newDirectory()).thenReturn(unzipTarget);
    return unzipTarget;
  }

  private static Path zipUpDirectory(Path sourceRoot, Path targetZip) throws IOException {
    try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(targetZip))) {
      for (Path source : new DirectoryWalker(sourceRoot).filterRoot().walk()) {

        StringJoiner pathJoiner = new StringJoiner("/", "", "");
        sourceRoot.relativize(source).forEach(element -> pathJoiner.add(element.toString()));
        String zipEntryPath =
            Files.isDirectory(source) ? pathJoiner.toString() + '/' : pathJoiner.toString();

        ZipEntry entry = new ZipEntry(zipEntryPath);
        zipOut.putNextEntry(entry);
        if (!Files.isDirectory(source)) {
          try (InputStream in = Files.newInputStream(source)) {
            ByteStreams.copy(in, zipOut);
          }
        }
        zipOut.closeEntry();
      }
    }
    return targetZip;
  }
}

redpajama_set_name: RedPajamaGithub


Mori Lee bridal wear really appeals to almost any bride. Lee's dresses are personalized to each bride's desires. The dresses are designed with luxurious fabrics, sparkling beading, and feminine lacing. The contemporary designs with classic undertones makes these dresses unique. Lee's dresses have many styles including A-lines, ball gowns, and mermaid style dresses giving every bride many options.


text:
Home / Press Releases / HealthCare.com Insuretech Division Pivot Health Announces Partnership With Cigna, Adding Benefit-Rich Short Term Health Insurance Plans to Portfolio
HealthCare.com Insuretech Division Pivot Health Announces Partnership With Cigna, Adding Benefit-Rich Short Term Health Insurance Plans to Portfolio
The company rolls out medical plan offerings for consumers using Cigna provider network
NEW YORK — (BUSINESS WIRE) — HealthCare.com announces its insuretech division, Pivot Health, has partnered with Cigna to market a new portfolio of short term health insurance products using the Cigna PPO Network^. The relationship gives Pivot Health its most robust short term health plan offering to date.
Quantum PPO short term medical health plans are currently available in Alabama, Arizona, Arkansas, Delaware, Kentucky, Mississippi and Oklahoma, and will become available in more than 20 additional states in the coming months. In addition to the Cigna PPO Network, plans include the option of doctor office copays, a preventive one-time exam per policy, coverage for preventive screenings and prescription drug copays on some plans with no deductible when in-network.
"We are very pleased that Cigna has chosen us to use their PPO network for new plans which include more powerful benefits and limit out-of-pocket expenses. We believe the plans will be meaningful to customers who need to keep their healthcare expenses in check. Broad benefits coupled with more than 1 million providers 1 in the Cigna PPO Network make Pivot Health's offering a win-win for health plan shoppers," said Jeff Smedsrud, Chief Executive Officer of Pivot Health.
The Quantum PPO plans are the first in-network and out-of-network PPO program in Pivot Health's product offering. Plans are available for up to 364-days depending on state-specific rules and may include extended coverage options.
HealthCare.com is an online health insurance company providing a data-driven shopping platform that helps American consumers enroll in individual health insurance and Medicare plans. HealthCare.com also develops and markets a portfolio of proprietary, direct-to-consumer health insurance and supplemental insurance products under the name Pivot Health. Founded in 2014, the company is headquartered in New York City and is backed by PeopleFund and individual investors including current and former executives of Booking.com and Priceline. HealthCare.com is a 4-time honoree of the Inc. 5000 list of America's fastest-growing companies. For more information, visit www.pivothealth.com.
^ Cigna's PPO network refers to the health care professionals (doctors, hospitals, specialists) contracted as part of the Cigna PPO for Shared Administration.
1 Cigna analysis of the actual number of doctors in the PPO network as of November 1, 2018. Data is subject to change.


Looking for reliable and illustration design services for great advertising of your brand, we are here to help you. With unparalleled skills our expert team will leave back rest of the contenders and your brand will get maximum heed by the audience. Whether you are looking for a small or bigger project we suffice to all your illustration designing needs and help you to create a great brand representation through unique and creative illustration in posters, flyers, magazines, books, teaching materials and so on. We offer a wide range of illustration, design services to illumine your brand and business to the fullest. Trustworthiness and quality work are our recognition and makes us an ace name in this domain.
Through careful and smart planning, strategizing and consulting, we come up with the perfect framework for research and analysis designed to give you the best solutions. We follow this 5-step process which continues to be very effective.
This is where you get to select your preferred package. We have Logo Design, Web Design and Web Development Projects. Every project has 4 packages, namely; Starter, Basic, Value and Premium Packages.
We carry out a detailed research and analysis about the project. The aim of this is to understand the market and our clients' competition by breaking down the information we gather. After that, we come up with templates that serve our clients' goals best – whether it is to create a solid brand identity or create an online platform that re-engages their customers.
After incorporating findings from our research and analysis in the templates, we present them to our clients. This is when we explain to them the details of the templates and get their feedback.
In case you want corrections or changes made to aspects of the templates, we will do it free of charge.
This is the final phase where we professionally deliver the finalized files to you.


In 2006, the city of Milton was formed from unincorporated northwest Fulton County. About 33,711 people call Milton home. A thriving city, Milton is also very conscientious about its environmental impact. It has nearly achieved certification as a Community Wildlife Habitat from the National Wildlife Federation (NWF).
As with any place, Milton also has its share of accidents. The daily commute to work could end up in a car accident. A visit at a friend's home, could turn into a painful, even tragic swimming pool accident. When life throws such crazy circumstances in your path, it is essential that you retain an experienced personal injury attorney. Without legal help, you could be left to pay medical bills and any property damage on your own. A temporary or permanent disability can also keep you from staying at work, leaving you unable to meet any of these payments. When someone else is responsible for an accident, you should not be the one who has to pay.
At Kalka & Baer LLC, we are committed to getting our clients the full compensation that they truly deserve.
It can be a scary experience to get into a car crash, and its consequences can be long lasting. Even a single vehicle accident can cause a great deal of damage. If it is a rollover accident, then you could further suffer from roof crush. Getting into a multi-vehicle accident can compound the harm. The other driver is nearly always at fault if you were rear-ended, in which case, you may have sustained whiplash and other injuries.
Whenever you need to deal with insurance companies or file a lawsuit to get compensation, the right legal advocate can make all the difference. We can help you if you or a loved one have been in a vehicle collision. You should not be the one paying for car and medical bills as you go without salary.
Any auto accident is a serious matter, but if you do not even have the benefit of seat belts, airbags, and a metal frame between you and impact, you are especially vulnerable to catastrophic injuries. The harm sustained in a bicycle or motorcycle accident can even lead to death. All it can take is for a tired or distracted driver to make a turn without looking, and you could be sent flying into the pavement. If an aggressive driver runs a stop sign or red light, a multi-ton car can slam right into you.
On a blind turn, you could race right into a head-on collision. Even if you are able to swerve away from a reckless driver, you could run into a tree or fence, or "wipe out" on a pothole or stretch of dangerous road. You could sustain road rash, or soft tissue injuries, from skidding along the asphalt. Broken bones are also common, and you could suffer from "biker's arm", leaving that arm paralyzed for life.
If you are in a bicycle accident, you could face much of the same harm. It is all too easy for a driver to not realize a bicyclist is ahead of them. Bikes are especially susceptible to crashing on poorly maintained roads, even if no one else is involved. Any of these collisions could leave you with traumatic brain injuries, spinal cord damage, and more. Perhaps you have lost a loved one in a bicycle or motorcycle accident. You may be entitled to a settlement to cover your pain and suffering, medical expenses, and lost wages.
If you trust your weight on a deck that is not attached or constructed securely, it could fall apart under you. You can get lacerations and bruises, your bones can break, muscles sprain, and soft tissue can easily tear. You could even suffer from a concussion or damage to your spinal cord. Any of these severely painful and costly results might be covered in a premises liability claim. If the property owner is at fault for the deck collapse accident, then you may be entitled to compensation. The property owner can also be liable when a spill or safety hazard is not dealt with, and you sustain injuries from a slip and fall.
If you go in for surgery to treat any injuries, the doctor may make mistakes in a seemingly simple procedure. Perhaps a doctor misdiagnoses or fail to diagnose your condition. If you have suffered from medical malpractice, then you may have reason to go after compensation. A prescription error can even turn antidepressants, ADD medications, or cholesterol reducers into addictive or harmful drugs. If you have suffered from someone else's negligence, we may be able to help you obtain the full amount that you deserve from your personal injury or wrongful death claim.
If you have been through any kind of accident, we understand that this can be a tough time for you. We also understand the difference a fair settlement can make in helping your physical and financial recovery.
Should you choose to work with Kalka & Baer LLC, we can fight tenaciously for your full rights to be upheld. We also operate on a contingency fee basis so that you only pay when we win you a settlement or jury award. At no upfront cost, you could have more than 30 years' legal experience on your side as you face big insurance companies or giant manufacturers. We have the determination and skills that may be able to get you the full compensation you are owed.
Over the years, our work ethic and abilities have built up a successful track record of getting families the financial awards they need. Our experience, professional conduct, and peer recognition have led to both of our attorneys being rated 10.0 Superb by Avvo.
They also have been included in Georgia's Super Lawyers® as Rising Stars℠ since 2010. This places them among the top 2.5% of all attorneys in the state. On top of this, Attorney Kalka is a member of The National Trial Lawyers Top 40 under 40, something that can only be achieved after rigorous screening. When you need outstanding personal injury lawyers in Milton, you can look to Kalka & Baer LLC.
Your case can expire, so be sure to contact us today to schedule your free initial consultation.
$225 Thousand Rear End Auto Case Causes Cervical Fusion and Herniation C5 and C6.
$175 Thousand Client had Prior Neck Surgery; Insurance Company Argued Client's Neck Injury was Pre-Existing.


Mike Oliver has held the position of Global Product Manager for sample preparation at Thermo Fisher Scientific since 2010, being responsible for the development and introduction of new innovative technologies such as SOLA™ and SMART Digest Kits to the market place. Prior to this role, Mike has worked for two leading MS vendors over a 9 year period, being responsible for biotechnology sales within the UK and providing application solutions for proteomic and metabolic workflows based on high-resolution LC–MS platforms, respectively. Mike holds a PhD in MS and Biochemistry from the MS Research Unit, University of Wales, Swansea, UK.


text:
var makeKnex = require('../../util/make-knex')
var Promise  = require('../../promise')
var helpers  = require('../../helpers')
var inherits = require('inherits')
var EventEmitter = require('events').EventEmitter

function Transaction_WebSQL(client, container) {
  helpers.warn('WebSQL transactions will run queries, but do not commit or rollback')
  var trx = this
  this._promise = Promise.try(function() {
    container(makeKnex(makeClient(trx, client)))
  })
}
inherits(Transaction_WebSQL, EventEmitter)

function makeClient(trx, client) {

  var trxClient                = Object.create(client.constructor.prototype)
  trxClient.config             = client.config
  trxClient.connectionSettings = client.connectionSettings
  trxClient.transacting        = true

  trxClient.on('query', function(arg) {
    trx.emit('query', arg)
  })
  trxClient.commit = function() {}
  trxClient.rollback = function() {}

  return trxClient
}

var promiseInterface = [
  'then', 'bind', 'catch', 'finally', 'asCallback',
  'spread', 'map', 'reduce', 'tap', 'thenReturn',
  'return', 'yield', 'ensure', 'nodeify', 'exec'
]

// Creates a method which "coerces" to a promise, by calling a
// "then" method on the current `Target`
promiseInterface.forEach(function(method) {
  Transaction_WebSQL.prototype[method] = function() {
    return (this._promise = this._promise[method].apply(this._promise, arguments))
  }
})

module.exports = Transaction_WebSQL


The purpose of BI is to turn data into insights and action. Embedded analytics makes that possible by putting insights into the context of operational applications in which actions occur. With embedded analytics, business users no longer have to exit a business application to view results, analyze performance, and view recommended actions; they can do this inside the application itself.
Learn why organizations will increasingly use BI tools to build analytical capabilities inside core business applications in every department including human resources, operations, finance, business development and marketing.


Relax Your Back With A Roller: Exercises and Strategies to Eliminate Pain isn't just an exercise book! Pamela Kihm shares important knowledge to apply throughout your day as you rediscover flexibility and balance. You may regain many functions previously lost because of stiffness and pain.
This 60-page book has 56 photographs, plus 14 line drawings to illustrate positions, and is spiral-bound so that you can easily see each complete exercise on its two facing pages.


Applicants must have a 3.0 GPA and participate in extra-curricular activities. Students must be accepted and plan to attend an accredited educational institution full-time in the United States. Applicants must plan to major in math, science or engineering.


10:00 : Departure from the hotel to Psiloritis Mountain.
23:00 – Late: Rock Jam Night at Rolling Stone Bar (22 Agiostefaniton str, at the center of Heraklion city).
(anyone can «jam» live along with the rock band «Undercover». This means that you can sing or play any musical instrument along with the band, choosing any song from a list of 100+ rock/blues songs which will be available from the band on a list).
23:30 – Late: Sayoonara Party (at the "Thalassini Avra" restaurant, 50m away from the hotel).


WASHINGTON (AP) — President Barack Obama and Mexican President Enrique Pena Nieto reaffirmed the importance of the US-Mexico relationship Friday, promoting the benefits of trade and friendship in an election year that has sometimes stressed that alliance.
In a news conference with Pena Nieto at the White House, Obama said trade with Mexico brings important investment and jobs to the U.S. He said the United States sells more to Mexico than to China, India and Russia combined.
Obama said he has worked to deepen the relationship during his presidency.
"We're not just strategic and economic partners, we're also neighbors and we're friends," Obama said.
The news conference came the morning after the closing of the Republican National Convention and a speech by GOP nominee Donald Trump, whose demands that Mexico pay for a U.S. border wall and descriptions of Mexican immigrants as criminals and rapists has offended the neighboring country.
Pena Nieto said a good relationship with the United States is "essential" for his country and said he looks forward to a "frank, open dialogue" with whomever is elected. Pena Nieto avoided questions about the wall, but has previously said that Mexico will not pay for the wall Trump proposes.
The two men also endorsed the Trans-Pacific Partnership trade agreement that both countries have signed on to, saying it would make the relationship between their countries even stronger. They said they have learned from the two-decade-old North American Free Trade Agreement, which Trump has heavily criticized.
Obama said the global economy is a fact, and "we're not going to be able to build a wall around that."
The visit comes less than a month after Pena Nieto and Obama met in Canada during a summit of North America's leaders. Obama's meetings with visiting foreign leaders are usually announced weeks in advance, but this visit was announced just last week.
The White House shrugged off suggestions that the visit was timed to highlight differences between Democrats and Republicans, particularly on attitudes toward Latinos.
"I think it's fair to say that almost anything that President Obama did on Friday would be viewed as a sharp contrast to the agenda that's being put forward by the other side," said White House press secretary Josh Earnest. "But in this case, it's been a while since the president has hosted the president of Mexico here at the White House."
Trump has also said Mexican immigrants "have lots of problems" and when they come to the U.S. "they're bringing drugs. They're bringing crime. They're rapists. And some, I assume, are good people."
Associated Press writer Mary Clare Jalonick contributed to this report.


Members of our team had to buy and test hundreds of shredder quiet from various manufacturers. The TOP list of the best shredder quiet, which can be found below, is completely based on our own experience.
Our team is proudly presents you the best shredder quiet on the marketplace. We found amazing products for affordable prices! You can find our list of the TOP products on this page below.
Continuous running time up to 60 minutes without stopping with patented cooling system for mass documents. 6 gallons pull-out wastebasket capacity for less frequent and easy emptying, and the transparent window makes it easy to see when it is full. Quiet operation: 62 db low noise level will give you a quiet and smooth shredding exprience. Shreds paper into very tiny particles measuring 5/32 x 2/5 inches (4mm x 10mm), high security level p-4. Micro-cut paper shredder up to 12 sheets (a4 size 75g/m 2) at a single pass. Auto start and auto reverse function protect you from the frustration of paper jams; overheating and overloading protection technology keeps sustainable using and prolong shredder's lifetime.
Safesense technology stops shredder when hands touch the paper opening. 100% jam proof system eliminates paper jams and powers through tough jobs. Silentshred offers ultra-quiet shredder performance for shared workspaces. Shreds 16 sheets per pass into 5/32″ x 1-1/2″ cross-cut particles (security level p-4). Item dimension h x w x d (inches): 21.31 x 15.38 x 10.44. Energy savings system provides optimal energy efficiency 100% of the time-in use and out of use.
Should I get a shredder quiet with a lifetime warranty?
Companies that make shredder quietoffer all kinds of warranties for any taste. Usually, cheap models have only a 6-month warranty or do not have it at all. Average users recommend choosing a shredder quiet with a two-year warranty, but we believe that the five-year warranty is much better and safer. At the same time, our team would not recommend you to buy models with a lifetime warranty since the vast majority of them is significantly overpriced.
Jam protection system with auto start and auto reverse to protect you from the frustration of paper jams, overheating and overloading protection technology to keep sustainable using the shredder and prolong its lifetime. Shreds paper, credit card, cd/dvd, clips, staples; shredding speed reaches 7.2 feet per minute; backed by 3 years warranty. Continuous running time up to 60 minutes without stopping for mass documents destroying; quiet operation: 58 db low noise level will give you a quiet and smooth shredding exprience. High-security cross-cut paper shredder with 12 sheets (a4 size 75g/m ) shredding capacity; shreds paper into tiny particles measuring 5/32 by 1-19/50 inches (4mm x 35mm), security level p-4.
4.2 gallons large pull-out wastebasket capacity for easy emptying, a 0.37 gallons separate small bin for cd/dvd and credit card pieces collection, and the transparent window makes it easy to see when wastebasket is full.
What exactly did you take into consideration while making the list of the best shredder quiet?
In order to create this buying guide, our team had to go through hundreds of user reviews and compare dozens of shredder quiet models and brands. Finding the best shredder quiet nowadays is a hard task: the selection on the market is so high that you would have to spend months to study all available options. Thankfully, our TOP list will help you find a good shredder quiet much quicker!
5mm x 10mm micro-cut shred is security level 4 rated – shreds 7.2 feet per minute (72 pages per minute). 3.5 gallon slide-out wastebasket with a window to see when container is full – a capacity of 350 shredded sheets. Auto start/stop with a manual reverse function, ultra quiet operation and casters make it easy to move the shredder to any location. Shreds up to 10 (ten) sheets at a single pass or one credit card at a single pass. Manufacturer's 1-year limited warranty.
What if a receive a wrong item instead of the shredder quiet I ordered?
There is no need to worry since the support team will help you to return your money or replace the wrong item with the chosen shredder quiet. Simply contact a support agent and describe your situation to get all the required help.
3.7-gallon wastebasket; thermal protection with power and overheat led indicator. "shred safe" advanced safety feature: auto power-off upon forced entry, prevent accident. Auto start and overload jam auto-stop feature to prevent serious paper jams, allows continuous shredding for 2 min on and 30 min off. High-security micro-cut with 6 sheet capacities; destroys credit cards, staples and small paper clips. Shreds paper and credit cards into tiny pieces (5/32 by 15/32 inches), security level p-4.
The auto feed tray of the boxis autoshred af100 can take up to 100 sheets at a time and will automatically start destroying your documents at speeds up to 11 feet per minute. There is also a manual feed intake which will take up to 10 sheets for your convenience. The motor has a 20-minute continuous run time to finish large shredding tasks. Automatic forward and reverse modes reduce the risk of jams. Other features include auto start/stop, manual reverse function, open door, overload & overheat indicator, ultra-quiet operation of 65db, and casters make it easy to move. A large 6.0 gallon capacity pull out waste bin with a window to see when container is full.
Quiet operation: 62 db low noise level will give you a quiet and smooth shredding exprience. Shreds paper and credit card into tiny particles measuring 5/32 x 1-19/50 inches (4mm x 35mm), security level p-4. Auto start/stop and manual reverse function ; overheating and overloading protection technology to keep sustainable using the shredder and prolong its lifetime. Cross-cut paper shredder with 14 sheets (a4 size 75g/m ) shredding capacity and 10 miniutes continuous running time for mass documents; shreds credit cards and staples also. 5 gallons pull-out wastebasket capacity for less frequent and easy emptying, and the transparent window makes it easy to see when it is full.
High-security and heavy duty cross-cut paper shredder with 18 sheets (a4 size 75g/m ) shredding capacity; shreds paper into 5/32 by 1-19/50 inches (4mm x 35mm), security level p-4. Shreds paper, credit card, cd/dvd, clips, staples, ultra-low noise to 58db; shredding speed reaches 5.9 feet per minute. Continuous running time up to 240 minutes without stopping for mass documents destroying; quiet operation: 58 db low noise level will give you a quiet and smooth shredding exprience. Jam protection system with auto start and auto reverse to protect you from the frustration of paper jams, overheating and overloading protection technology to keep sustainable using the shredder and prolong its lifetime.
7.9 gallons large pull-out wastebasket capacity for easy and less frequent emptying, a 0.37 gallons separate small bin for cd/dvd and credit card pieces collection, and the transparent window makes it easy to see when wastebasket is full.
Fellowes shredder quickly shreds 16 sheets of paper per pass into 397 (5/32 x 1-1/2 ) cross-cut particles (security level p- and can shred approximately 200 sheets per minute. Shredder also destroys staples, credit cards, paper clips, cds, dvds and unopened junk mail. Jam buster powers through tough paper jams with the touch of a button for frustration-free shredding. Silentshred offers ultra-quiet performance for shared workspaces. Includes 6.5 gallon pull-out bin that keeps workspace or office clean and casters for easy mobility.
Crosscut with 20 sheet capacities; destroys cds, dvds, credit cards and small paper clips. Shreds paper, cds, dvds, credit cards into small pieces (5/32 by 1-9/16 inches), security level p-4. Energy saving system auto power off. Auto restart feature shredder resumes automatically by simply inserting paper without powering up. Nonstop stop 60-minute continuous run time; anti-jam auto-reverse to clear paper jams; ultra-quiet operation. 7.0-gallon pullout bin with led indicator lights standby/ overheat/ bin-full/ overload/ door open status.
How safe is it to purchase a shredder quiet online?
Why there should be any reasons to worry? There are no risks in buying shredder quieton the internet, sine you can always get a refund. You can also check the reputation of a seller just to be sure that your shredder quiet will be delivered without any problems.
What is the defining factor when choosing a shredder quiet?
If you are buying a shredder quiet for the fist time in your life and do not really know much about it, you should always look carefully for user reviews from other customers. Learn from the experience of other people and try to find a shredder quiet according to its material and assembly quality.


text:
Q: Alter JSON file in CLOUD SHELL Terminal this is my file :
$ cat INPUT-JSON
{"endpointId": "1411183591831896064", "instance": "[{age: 40.77430558, ClientID: '997', income: 44964.0106, loan: 3944.219318}]"}

I want to alter it to :
$ cat INPUT-JSON
{"endpointId": "1411183591831896064", "instance": "[{age: 30.00, ClientID: '998', income: 50000.00, loan: 20000.00}]"}

How do I do that using CLOUD SHELL Terminal ? (on google cloud platform)
(this is part of a Qwiklab : Vertex AI: Predicting Loan Risk with AutoML from https://www.cloudskillsboost.google/course_templates/3?hl=es_419&locale=fr_CA&skip_cache=true&utm_campaign=cgc&utm_medium=website&utm_source=gcp_training )
Thanks a lot for your help

A: Since you're just editing the values in the json file, you can use the vim editor or vi editor to edit your file.

A: This can be done in Google Cloud Terminal. To edit/alter those values:

*

*Click on "Open Editor" above your terminal in the top right corner.

*Then you modify the values via the JSON File.

*When finished click on "Open Terminal", then rerun your last script to notice the different outcome.

Hope this helps!

redpajama_set_name: RedPajamaStackExchange


text:
Ritter CommunicationsOlof Atterfors2018-10-10T13:25:10+01:00
Ritter Communications
Inca Helps Ritter Communications Save with New IPTV Build – Going Digital
"Our engineers love the Inca gear. It's so easy to set up and manage. It takes me no time at all to show them how to add or delete a channel. With gear from other vendors, it can take weeks to train the team."
Joey Willis Network Engineer, Ritter Communications
As Ritter Communications was preparing to transition the city of Alpena, Arkansas from analog to digital services, they knew they needed a reliable, high-quality solution for their off-airs. Not all viewers were ready to welcome the switch to digital – many were perfectly happy with their analog TV service and were anxious about change.
Founded in 1906 and headquartered in Jonesboro, Arkansas, Ritter Communications is a fifth-generation, family-owned company. Serving over 45,000 customers across three U.S. states, Ritter Communications is a leader among independent communications providers, offering business, residential and wholesale customers advanced internet, phone, video and hosted services.
Recently, Ritter needed to purchase a new 8VSB to IP solution to serve off-air channels digitally to their video subscribers. The off-air component was part of a larger project – Ritter Communications was building a new IPTV system branded as "NexTV" in an area that offered only analog. As part of the rollout plan, both analog and digital video services would be available for four months before shutting down the analog services permanently.
Initially, Ritter planned to mirror the set-up in one of their other headends where 8VSB signals were transmitted to ASI and then to IP outputs, with additional transcoding completed before delivering to customers as MPEG-4 AVC video. Separate boxes were used for 8VSB to ASI, for ASI to IP and then for the IP transcoding. It wasn't a very elegant solution, but it worked.
The plan changed once Ritter Communications discovered that a single Inca box was capable of receiving their entire off-air lineup and transcoding to MPEG-4 AVC IP outputs.
All-in-one 1RU solution
Joey Willis, Network Engineer at Ritter Communications, had previously purchased Inca equipment for transcoding and was a fan. "Our engineers love the Inca gear," explains Joey. "It's so easy to set up and manage. It takes me no time at all to show them how to add or delete a channel. With gear from other vendors, it can take weeks to train the team."
Joey contacted Inca Networks about the new IPTV project and discovered that the 4400 Modular Series had 8VSB receiver modules available that could optionally transcode from MPEG-2 to MPEG-4 AVC. When discussing the number of OTA channels to support with Inca gear, Joey soon realized a single Inca chassis was all that was required to deliver the entire off-air line up to viewers – saving Ritter substantial costs, rack space and power.
Ritter Communications purchased the 4430 chassis, part of the 4400 family, for the project. The 4430 has three expansion module bays that can be used with optional input modules for GigE, ASI or 8VSB/QAM. Ritter only needed to use 2x 8VSB modules in their 4430 chassis to support 6x HD and 15x SD off-air services. They have left the third expansion bay empty for now. "We might get a third module if we need it," explains Joey. "We like having the spare room in case we want to add additional services in the future."
Setting up the Inca gear was incredibly easy. "It's the easiest solution I've come across to set up 8VSB reception," says Joey. "I just had to take it out of the box and configure it. It was easy to set up and then I didn't have to worry about it at all. It's been running 24/7 with no problems. Next year we may potentially replace some of our 8VSB units from Harmonic with more Inca units."
Time to Roll Out
To launch the new IPTV services, Ritter Communications demoed the new digital video services to residents at the local city hall. At the meeting, residents were informed that both the analog and digital services would be available for at least four months before analog was discontinued. Many people were anxious about the switch. They were familiar with their analog TV services and didn't know what to expect with the change. Prior to the city hall event, Ritter Communications made personalized phone calls, delivered mailers and sent emails informing customers of the upcoming changes.
Most of the concerns were alleviated once they saw the digital TV services with their own eyes. "People were just floored by the difference in quality," said Joey. "Once they started using the digital service, we had a lot of positive comments from our customers. They were very happy. NexTV brings many new features and pricing structure benefits that were not previously available in this market."
To help stay on top of service disruptions, Ritter Communications monitors all their digital video services using the Inca All Seeing Eye 5420, a sophisticated confidence monitoring solution featuring a visual overview mosaic. The 4400 Modular Series with 8VSB Reception includes integrated probes for the All Seeing Eye so no additional equipment was required to add monitoring for the off-airs. Joey and other engineers at Ritter can check the All Seeing Eye mosaic at any time and know at a glance if there are any stream impairments or outages. Joey commented that the Inca gear handles problematic source streams well and there is rarely a need to intervene.
Joey is already recommending Inca to other companies nearby. Local power and electrical companies in Arkansas who haven't offered video before recently approached Ritter Communications for advice. Ritter is insisting they should get in touch with Inca. "The Inca gear can do everything they need, runs reliability and outputs high-quality video. It's a great all-in-one solution."
For more information about Inca's 4400 Modular Series and 8VSB solution options, see the product page or email us at info@incanetworks.com. We're here to help.
All Seeing Eye 5420
Sophisticated, real-time visual video monitoring with video thumbnails →


Does an event, any event, belong to the memory or to reality, as exists despite any individual or collective memory thereof? If we accept that any event enjoys an existence independent of any memory thereof, it would be impossible to reach the truth of that event, since all we have of any event is the collective of what remained thereof in human memory and its extensions. On the other hand, if we believe that the event exists only in memory, its diverse representations in individual memories would be equal in their credibility; since there is no original outside any memory that could be used as a reference to judge the truth or falseness of it.
These speculations appear to floating in the realm of the theoretical, away from the facts and needs on the ground, where we always need to validate a specific story to adopt as the truth. This is a need without which we cannot perceive of our daily lives. It would not occur to any of us to question that a daily simple event is nothing more than our memory thereof. The memory of an event is the truth despite our conviction that the event itself exists independent of our memory. However, the lived reality may drive us to question this assumed and inevitable overlap between truth and memory. When stories regarding a certain event are multiple and sometimes contradictory, we have to look for an alternative but are faced with the reality that all we have is a heap of stories and memories. However, people's rights and fates might be at stake and for that reason we cannot allow ourselves to remain within a space of philosophical questioning. If an event was nonexistent beyond memory, it should be subject to verification to arrive at objective criteria to address each story of the event. In that case we cannot claim that those objective criteria related to the event are the truth beyond any memory, but is more linked to the internal consistency of the memory, excluding contradictions and deliberate fabrication.
This report, like our previous one concerning the Mohamed Mahmoud events, aims to collect memories to weave by themselves an objective matrix against which to test any recall of the events. This time the event is what has come to be called "the Maspero events" in reference to the huge building by the Nile which hosts the most important media institution in Egypt, the Radio and Television Union, and which has witnessed the events on the evening of the 9th of October 2011, witnessed by the building and its cameras which broadcasted those events live to the homes of millions of Egyptians. Despite this live coverage the event was and remains surrounded by the grayness of doubt concerning the truth of what happened, a stark example that even what we see, either directly or through the camera is not enough to form a memory that we can take to represent the truth which we assume is independent thereof.
What we know for sure regarding the event is its direct material consequences: the killed, the injured, the burnt vehicles (military and civilian), the empty cartouches of the fired bullets etc. Other than that, the interpretation of that material outcome is disputed by contradictory stories, some of which have reached official documents, while others have been repeated and published by media channels to create an important collective memory. Others remain held in the memories of those who have survived the event.
Official documents, authorities' reports, investigation reports, minutes of court sessions, all weaved the story upon which depended, or not, the criminal responsibility for the event. Political responsibility remained floating in a space of denial or falling upon this or that party depending on the legal moment. The story of those who lived through the event, on the other hand, did not have the chance to formulate their alternative stories in a way that would be effective on the ground. This aspect is what this report is trying to show although it was not able to solve it to the extent we wished. Collecting this memory exiled from official documents and media highlights, we seek for the alternative story to forge its space. Also, collecting those official documents and highlighting what it elected from the lived memory of the event might enable us to outline what is objective and in harmony with that memory, so that we can confidently try the rest for being fabrication, fraud and lies.
Time does not deal in the same way with memories kept safe in the minds of its owners and those allowed access to papers, recordings and documentation. Thus, what finds its way from the realms of memory into what we call "history", does not necessarily do justice to the memories that have been denied documentation. Investigating the substance of those memories is closely linked to questioning the authorities. The different representations of authority owns most tools of documentation. In most cases it is able to deny those alternative memories hoping for time to overshadow them. In a way our report, like the previous one, is trying to provide documentation for that alternative memory, using the few documentation tools that are not under state control, in the hope that they not be overlooked by history.