Real Time Android Chat Application using Firebase

 

Hello Guys. In this tutorial, we will learn how to make and Real time Android Chat Application using Firebase. Now why do we choose Firebase?? Because we don’t have to write database code. Making an Android Chat App using firebase is a piece of cake. You don’t have to maintain a separate database to store all chats. Firebase automatically does it for you.

Real Time Android Chat Application using Firebase

Download Source Code For ChatApp

Following is how our android chat application will look like:chat

How to create chat application in android using android studio

This Android chat will be created in Android Studio. Here we will use volley to get any required data from firebase database in case of login. You can read about how to get data from web using Android Volley. We are using Android Studio because it is very user friendly and one can easily write, update or run code there.

Working of firebase chat app android

In this Firebase Chat App, we will first ask the user to register. If he/she is already registered then he can directly click on the login screen and fill username and password. After logging in, all registered users will be shown and the user can start chatting with anyone. All these user credentials and chat messages will be stored in online Firebase database. Isn’t it amazing ??

Making of Android Chat Application using Firebase

Here we will make separate classes each for login, registration, Users list and Chat. Also separate layout files will be created for each one.

Let’s start making our android chat application.

First of all, create a firebase account. Follow following steps:

  1. Go to Firebase Website firebase.google.com and create a firebase account to start with. Go to Firebase console and Create a New Project by clicking on the “Create New Project” Button as shown below.add_project2.Give the Project name and country you are currently in, Once you are done click on “Create Project” button.create a project3.In the next screen choose “Add Firebase to your Android app” and then add the package details and Debug signing certificate SHA-1 key( This is required if you want to enable certain features like Dynamic Links, Invites, and Google Sign-In etc. otherwise it is an optional field).add_firebase_to_your_android app

4.Get SHA-1 key    [ Gradle -> Chat App(root) -> Tasks -> android -> signingReport (double   click )This will download the google-services.json file. Download it to your computer. We will add it to our android app later.get SHA1 key for chat app

5.In the project’s dashboard. Click on Auth Menu, then in the SIGN-IN METHOD click on Email/Password and enable it.signin method This is required because the default security rules for the Android Firebase allows only authenticated users to read and write.

Then click on the Database tab in the Firebase Menu and copy this link :link collection

Also copy the URL of database. In our case it is [ *–this link–*  /users.json. ]

Exmple: https://chatapp-dc05b.firebaseio.com/users.json

You can check the Rules tab to see or change the security rules for reading and writing on Android Firebase Database. Below figure shows the custom settings.rules

You can change these to true, if you want free unauthenticated access to your Firebase. Once you are done with this, Let’s create our Android chat Application that will connect to Firebase Database we have just created and uses Firebase Authentication that we have enabled in the console.

Creating a New Project

  1. Go to File → New → New Project and enter your Application Name. In our case it is Android Chat App
  2. Enter company domain, this is used to uniquely identify your App’s package worldwide. Remember to use the same package name as used in the firebase console.
  3. Choose project location and minimum SDK and on the next screen choose Empty Activity, since we would be adding most of the code Ourselves. Then Click on Next.
  4. Choose an Activity Name. Make sure Generate Layout File check box is selected, Otherwise we have to generate it ourselves.Then click on Finish.

Gradle will configure your project and resolve the dependencies, Once it is complete proceed for next steps.

Add Permissions and Dependencies in Android Chat Application

  1. After Gradle syncs the project, add the google-services.json file to your project’s app folder as shown below.add json
  2. Since we need to connect to the Network add the Internet permission in AndroidManifest.xml fileAndroidManifest.xml<uses-permission android:name="android.permission.INTERNET"/>ince we Since we are making separate classes for login, chat , registration etc. so add Launcher Activity as Login and register other activities as below in AndroidManifest.xml:
    <activity android:name=".Login">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Register" />
    <activity android:name=".Users" />
    <activity android:name=".Chat" />

    Your AndroidManifest.xml file look like this:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.andrious.chatapp">
        <uses-permission android:name="android.permission.INTERNET"/>
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".Login">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".Register" />
            <activity android:name=".Users" />
            <activity android:name=".Chat" />
        </application>
    
    </manifest>
  3. Next, open your app’s build.gradle and add the following dependencies in the dependencies section and packagingOptions in android section:
    compile 'com.firebase:firebase-client-android:2.5.2+'
    compile 'com.android.volley:volley:1.0.0'
packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
}

Your app’s build.gradle look like this:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    defaultConfig {
        applicationId "com.andrious.chatapp"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile 'com.firebase:firebase-client-android:2.5.2+'
    compile 'com.android.volley:volley:1.0.0'
}
apply plugin: 'com.google.gms.google-services'

 

Layout of Firebase chat app android

As already discussed, we will make separate layouts for login, register and chat screen, so first create a layout file named activit_chat.xml:

activit_chat.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.andrious.chatapp.Chat">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_weight="20"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView">
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/layout2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginBottom="10dp"
                android:id="@+id/layout1">
            </LinearLayout>
        </RelativeLayout>
    </ScrollView>
    <include
        layout="@layout/message_area"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:layout_marginTop="5dp"/>
</LinearLayout>

Above is the chat layout where a scrollview is created so that user can easily scroll and see old messages. message_area is included to send chat messages in real time.

Now create layout for login screen. Create activity_login.xml:

activity_login.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.andrious.chatapp.Login"
    android:orientation="vertical"
    android:gravity="center">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Login"
        android:textSize="30dp"
        android:gravity="center"
        android:layout_marginBottom="20dp"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/username"
        android:inputType="text"
        android:maxLines="1"
        android:hint="enter username"
        android:layout_marginBottom="10dp"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/password"
        android:inputType="textPassword"
        android:maxLines="1"
        android:hint="enter password"
        android:layout_marginBottom="10dp"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Login"
        android:id="@+id/loginButton"
        android:layout_marginBottom="20dp"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Click here to register"
        android:textSize="20dp"
        android:gravity="center"
        android:id="@+id/register"/>
</LinearLayout>

Create one for register screen too:

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.andrious.chatapp.Register"
    android:orientation="vertical"
    android:gravity="center">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Register"
        android:textSize="30dp"
        android:gravity="center"
        android:layout_marginBottom="20dp"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/username"
        android:inputType="text"
        android:maxLines="1"
        android:hint="enter username"
        android:layout_marginBottom="10dp"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/password"
        android:inputType="textPassword"
        android:maxLines="1"
        android:hint="enter password"
        android:layout_marginBottom="10dp"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Register"
        android:id="@+id/registerButton"
        android:layout_marginBottom="20dp"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Click here to login"
        android:textSize="20dp"
        android:gravity="center"
        android:id="@+id/login"/>

</LinearLayout>

Create a new layout file named activity_user.xml which will be used to store all registered users in a ListView.

activity_user.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.andrious.chatapp.Users"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="No users found!"
        android:id="@+id/noUsersText"
        android:visibility="gone"/>
    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/usersList"/>
</LinearLayout>

Create one more layout file for message area where user will write and send a text message:

message_area.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/border"
        android:orientation="horizontal">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textColorHint="#CFD8DC"
            android:gravity="center"
            android:background="@android:color/transparent"
            android:hint="Type a message..."
            android:id="@+id/messageArea"
            android:maxHeight="80dp"
            />
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="4"
            android:padding="4dp"
            android:background="@color/colorPrimary"
            android:src="@android:drawable/ic_menu_send"
            android:id="@+id/sendButton"/>
    </LinearLayout>
</LinearLayout>

Create drowable file to show chat messages in a listView.Create one for send message and  receive message another is design . text_in.xml :

text_in.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list>
<item  xmlns:android="http://schemas.android.com/apk/res/android"
    android:top="1dp"
    android:bottom="1dp">
        <shape
            android:shape="rectangle" >
            <solid android:color="#EEEEEE"/>
            <stroke
                android:width="2dip"
                android:color="#EEEEEE" />
            <corners
                android:bottomLeftRadius="20dp"
                android:bottomRightRadius="20dp"
                android:topLeftRadius="20dp"
                android:topRightRadius="20dp" />
            <!-- If you want to add some padding -->
            <padding
                android:left="15dp"
                android:top="5dp"
                android:right="15dp"
                android:bottom="7dp"    >
            </padding>
        </shape>
    </item>
</layer-list>

 

text_out.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list>
    <item  xmlns:android="http://schemas.android.com/apk/res/android"
        android:top="2dp"
        android:bottom="2dp">
        <shape
            android:shape="rectangle" >
            <solid android:color="#2196F3" />
            <stroke
                android:width="2dip"
                android:color="#2196F3" />
            <corners
                android:bottomLeftRadius="20dp"
                android:bottomRightRadius="20dp"
                android:topLeftRadius="20dp"
                android:topRightRadius="20dp" />
            <!-- If you want to add some padding -->
            <padding
                android:left="15dp"
                android:top="5dp"
                android:right="15dp"
                android:bottom="7dp"    >
            </padding>
        </shape>
    </item>
</layer-list>

border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:radius="0dp"
        />
    <stroke
        android:width="1dip"
        android:color="#555555" />
</shape>

So layout work is finally complete. Now let’s start making it work.

Adding Functionality in Android Chat App

As we have already discussed, in this section we will create separate classes for each of login, register, chat and user data. First of all, create Login.java which is our launcher activity:

Login.java

package com.andrious.chatapp;

/**
 * Created by MD.ISRAFIL MAHMUD on 7/20/2017.
 */

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;

public class Login extends AppCompatActivity {
    TextView registerUser;
    EditText username, password;
    Button loginButton;
    String user, pass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        registerUser = (TextView)findViewById(R.id.register);
        username = (EditText)findViewById(R.id.username);
        password = (EditText)findViewById(R.id.password);
        loginButton = (Button)findViewById(R.id.loginButton);

        registerUser.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Login.this, Register.class));
            }
        });
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                user = username.getText().toString();
                pass = password.getText().toString();

                if(user.equals("")){
                    username.setError("can't be blank");
                }
                else if(pass.equals("")){
                    password.setError("can't be blank");
                }
                else{
                    String url = "https://chatapp-dc05b.firebaseio.com/users.json";
                    final ProgressDialog pd = new ProgressDialog(Login.this);
                    pd.setMessage("Loading...");
                    pd.show();

                    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
                        @Override
                        public void onResponse(String s) {
                            if(s.equals("null")){
                                Toast.makeText(Login.this, "user not found", Toast.LENGTH_LONG).show();
                            }
                            else{
                                try {
                                    JSONObject obj = new JSONObject(s);

                                    if(!obj.has(user)){
                                        Toast.makeText(Login.this, "user not found", Toast.LENGTH_LONG).show();
                                    }
                                    else if(obj.getJSONObject(user).getString("password").equals(pass)){
                                        UserDetails.username = user;
                                        UserDetails.password = pass;
                                        startActivity(new Intent(Login.this, Users.class));
                                    }
                                    else {
                                        Toast.makeText(Login.this, "incorrect password", Toast.LENGTH_LONG).show();
                                    }
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }

                            pd.dismiss();
                        }
                    },new Response.ErrorListener(){
                        @Override
                        public void onErrorResponse(VolleyError volleyError) {
                            System.out.println("" + volleyError);
                            pd.dismiss();
                        }
                    });

                    RequestQueue rQueue = Volley.newRequestQueue(Login.this);
                    rQueue.add(request);
                }
            }
        });
    }
}

As you would have easily guessed, in the above code if a user clicks on register button then second activity will start namely Register Activity through startActivity(new Intent(Login.this, Register.class));. After that an event is waiting for Login button to click. If it clicks then corresponding data will be taken from URL using Volley request StringRequest(Request.Method.GET, url, new Response.Listener(). Here note that url is specific for every user. Yours url will be different. After getting required user and password from URL, It will be passed to class Users. So create a new class named Users.java:

Users.java

package com.andrious.chatapp;

/**
 * Created by MD.ISRAFIL MAHMUD on 7/20/2017.
 */

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Iterator;

public class Users extends AppCompatActivity {
    ListView usersList;
    TextView noUsersText;
    ArrayList<String> al = new ArrayList<>();
    int totalUsers = 0;
    ProgressDialog pd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user);

        usersList = (ListView)findViewById(R.id.usersList);
        noUsersText = (TextView)findViewById(R.id.noUsersText);
        pd = new ProgressDialog(Users.this);
        pd.setMessage("Loading...");
        pd.show();
        String url = "https://chatapp-dc05b.firebaseio.com/users.json";
        StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
            @Override
            public void onResponse(String s) {
                doOnSuccess(s);
            }
        },new Response.ErrorListener(){
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                System.out.println("" + volleyError);
            }
        });
        RequestQueue rQueue = Volley.newRequestQueue(Users.this);
        rQueue.add(request);
        usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                UserDetails.chatWith = al.get(position);
                startActivity(new Intent(Users.this, Chat.class));
            }
        });
    }
    public void doOnSuccess(String s){
        try {
            JSONObject obj = new JSONObject(s);

            Iterator i = obj.keys();
            String key = "";

            while(i.hasNext()){
                key = i.next().toString();
                if(!key.equals(UserDetails.username)) {
                    al.add(key);
                }
                totalUsers++;
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        if(totalUsers <=1){
            noUsersText.setVisibility(View.VISIBLE);
            usersList.setVisibility(View.GONE);
        }
        else{
            noUsersText.setVisibility(View.GONE);
            usersList.setVisibility(View.VISIBLE);
            usersList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, al));
        }
        pd.dismiss();
    }
}

In the above code, we are grabbing data from URL using volley method StringRequest. If it is successful then function doOnSuccess(s) will be called. Here user will be added in ListView if user login is successful. This ListView will contain all users who are logged in so that they can choose whom to chat. On selecting any user from ListView, usersList.setOnItemClickListener will get implemented giving life to Chat activity through startActivity(new Intent(Users.this, Chat.class));. So create following file Chat.java:

Chat.java

package com.andrious.chatapp;

/**
 * Created by MD.ISRAFIL MAHMUD on 7/20/2017.
 */

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.firebase.client.ChildEventListener;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;


public class Chat extends AppCompatActivity {
    LinearLayout layout;
    RelativeLayout layout_2;
    ImageView sendButton;
    EditText messageArea;
    ScrollView scrollView;
    Firebase reference1, reference2;
    SimpleDateFormat sdf;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chat);
        
        sdf = new SimpleDateFormat("EEE, MMM d 'AT' HH:mm a");
        layout = (LinearLayout) findViewById(R.id.layout1);
        layout_2 = (RelativeLayout)findViewById(R.id.layout2);
        sendButton = (ImageView)findViewById(R.id.sendButton);
        messageArea = (EditText)findViewById(R.id.messageArea);
        scrollView = (ScrollView)findViewById(R.id.scrollView);
        scrollView.fullScroll(View.FOCUS_DOWN);
        Firebase.setAndroidContext(this);
        reference1 = new Firebase("https://chatapp-dc05b.firebaseio.com/messages/" + UserDetails.username + "_" + UserDetails.chatWith);
        reference2 = new Firebase("https://chatapp-dc05b.firebaseio.com/messages/" + UserDetails.chatWith + "_" + UserDetails.username);
        sendButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String messageText = messageArea.getText().toString();
                if(!messageText.equals("")){
                    Map<String, String> map = new HashMap<String,String>();
                    String currentDateandTime = sdf.format(new Date());
                    map.put("message", messageText);
                    map.put("user", UserDetails.username);
                    map.put("time", currentDateandTime);
                    reference1.push().setValue(map);
                    reference2.push().setValue(map);
                    messageArea.setText("");
                }
            }
        });
        reference1.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Map map = dataSnapshot.getValue(Map.class);
                String message = map.get("message").toString();
                String userName = map.get("user").toString();
                String time = map.get("time").toString();

                if(userName.equals(UserDetails.username)){
                    addMessageBox("You " , message,time, 1);
                }
                else{
                    addMessageBox(UserDetails.chatWith , message,time, 2);
                }
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });
    }
    public void addMessageBox(String name,String message,String time, int type){

        TextView textmsg = new TextView(Chat.this);
        TextView textname = new TextView(Chat.this);
        TextView texttime = new TextView(Chat.this);

        textname.setText(name);
        textname.setTextSize(TypedValue.COMPLEX_UNIT_SP, 11);
        textmsg.setText(message);
        texttime.setText(time);
        texttime.setTextSize(TypedValue.COMPLEX_UNIT_SP, 11);

        LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        LinearLayout.LayoutParams lp3 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp2.weight = 1.0f;
        if(type == 1) {
            lp1.gravity = Gravity.RIGHT;
            lp2.gravity = Gravity.RIGHT;
            lp3.gravity = Gravity.RIGHT;
            textmsg.setBackgroundResource(R.drawable.text_in);
        }
        else{
            lp1.gravity = Gravity.LEFT;
            lp2.gravity = Gravity.LEFT;
            lp3.gravity = Gravity.LEFT;
            textmsg.setBackgroundResource(R.drawable.text_out);
        }
        textname.setLayoutParams(lp1);
        textmsg.setLayoutParams(lp2);
        texttime.setLayoutParams(lp3);
        layout.addView(textname);
        layout.addView(textmsg);
        layout.addView(texttime);
        scrollView.fullScroll(View.FOCUS_DOWN);
    }
}

In the above class, we have first created two handles of Firebase namely reference1 and reference2. Whenever user clicks on sendButtonsendButton.setOnClickListener will get implemented and required message and user will get pushed into reference1 and reference2 which will be automatically get updated in firebase database. addChildEventListeneris used to receive events about changes in the child locations of a given DatabaseReference ref. So when required mesaage is pushed in reference1, it will call onChildAdded which in turn will call addMessageBox(). Method addMessageBox() is used to insert a new entry into ListView which will be shown as chat messages. Everytime addMessageBox is called a new View will be created whose background will be drawable xml file. Required View will get added in Layout through layout.addView(textView);. So chat message layout gets created .Change all the link.

Example:

"*--paste your database URL--*/users.json"

Finally create a new file named Register.java and add following code.

Register.java

package com.andrious.chatapp;

/**
 * Created by MD.ISRAFIL MAHMUD on 7/20/2017.
 */

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.firebase.client.Firebase;
import org.json.JSONException;
import org.json.JSONObject;

public class Register extends AppCompatActivity {
    EditText username, password;
    Button registerButton;
    String user, pass;
    TextView login;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        username = (EditText)findViewById(R.id.username);
        password = (EditText)findViewById(R.id.password);
        registerButton = (Button)findViewById(R.id.registerButton);
        login = (TextView)findViewById(R.id.login);
        Firebase.setAndroidContext(this);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Register.this, Login.class));
            }
        });
        registerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                user = username.getText().toString();
                pass = password.getText().toString();

                if(user.equals("")){
                    username.setError("can't be blank");
                }
                else if(pass.equals("")){
                    password.setError("can't be blank");
                }
                else if(!user.matches("[A-Za-z0-9]+")){
                    username.setError("only alphabet or number allowed");
                }
                else if(user.length()<5){
                    username.setError("at least 5 characters long");
                }
                else if(pass.length()<5){
                    password.setError("at least 5 characters long");
                }
                else {
                    final ProgressDialog pd = new ProgressDialog(Register.this);
                    pd.setMessage("Loading...");
                    pd.show();
                    String url = "https://chatapp-dc05b.firebaseio.com/users.json";
                    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
                        @Override
                        public void onResponse(String s) {
                            Firebase reference = new Firebase("https://chatapp-dc05b.firebaseio.com/users");
                            if(s.equals("null")) {
                                reference.child(user).child("password").setValue(pass);
                                Toast.makeText(Register.this, "registration successful", Toast.LENGTH_LONG).show();
                            }
                            else {
                                try {
                                    JSONObject obj = new JSONObject(s);

                                    if (!obj.has(user)) {
                                        reference.child(user).child("password").setValue(pass);
                                        Toast.makeText(Register.this, "registration successful", Toast.LENGTH_LONG).show();
                                        Intent i = new Intent(Register.this, Login.class);
                                        startActivity(i);
                                    } else {
                                        Toast.makeText(Register.this, "username already exists", Toast.LENGTH_LONG).show();
                                    }
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                            pd.dismiss();
                        }
                    },new Response.ErrorListener(){
                        @Override
                        public void onErrorResponse(VolleyError volleyError) {
                            System.out.println("" + volleyError );
                            pd.dismiss();
                        }
                    });
                    RequestQueue rQueue = Volley.newRequestQueue(Register.this);
                    rQueue.add(request);
                }
            }
        });
    }
}

Above code in pretty much self explanatory.

Also create following following file to store user data.

UserDetails.java

package com.andrious.chatapp;

/**
 * Created by MD.ISRAFIL MAHMUD on 7/20/2017.
 */

public class UserDetails {
    static String username = "";
    static String password = "";
    static String chatWith = "";
}

Now run it. You will be able to see a Login screen. First register your name and then login. Finally you will be able to chat. You can see demo of this tutorial in the video given at start of tutorial.

So it’s done. We hope above explanation helped you in actually making and learning whole code of Android Chat Application. Please comment if you have any doubt.

349 Comments

  1. Toney Sumlin

    October 11, 2017 at 6:17 pm

    Hi, just wanted to post on the great experience we had with the above campaign. Great customer feedback, improved brand awareness. Would definitely do it again.

  2. CH_AR_Y

    October 26, 2017 at 6:46 am

    app build successfully ,when I’m trying to signup .app CRASHES (unfortunately stopped

  3. Anurag Prerit Samrat

    May 11, 2018 at 11:25 am

    in my Login Activity Toast occur (user not found) but in Register Activity Toast occur registration success

    1. Atharva

      February 19, 2019 at 2:32 pm

      I am having the same problem, i really need you help,

  4. admin

    May 24, 2018 at 5:55 pm

    are you done all the step carefully..please check

    1. Aham

      February 21, 2019 at 8:45 pm

      please help me sir, i need you help here, while login it shows user not found, but it gives registration successfully in signup. tell me where is i am doing wrong

      1. admin

        June 13, 2019 at 6:31 pm

        Sorry for delay,your problem is solved or not.if not solve then send me a message into my facebook.

  5. Sammy Sample

    May 25, 2018 at 5:33 pm

    I really can’t believe how great this site is. Keep up the good work. I’m going to tell all my friends about this place.

  6. Morris Froberg

    June 4, 2018 at 5:08 am

    hello admin, hello everyone, this is my first visit to this blog and I must say the content on this blog is very nice. I actually love reading such articles but not a lot of webmasters write content like this. thanks for taking your time to write such good content

  7. Free Auto Approve List 6-18-2018

    June 18, 2018 at 11:29 pm

    I just added a new fresh list of links. I hope all of you had a great weekend. Now it’s time to get back to work and build some links.

  8. Angel Bowery

    June 20, 2018 at 9:55 am

    Appreciate you for sharing these types of wonderful posts. In addition, the perfect travel plus medical insurance approach can often eliminate those worries that come with vacationing abroad. A new medical crisis can quickly become costly and that’s likely to quickly place a financial stress on the family finances. Putting in place the excellent travel insurance package prior to setting off is worth the time and effort. Thanks

  9. Free Auto Approve List 7-8-2018

    July 10, 2018 at 2:06 am

    I hope you all are having a great weekend. I have a new list for you. Read the latest update on how I compiled the list. I’m still surprised by the results.

  10. Free Auto Approve List 7-12-2018

    July 12, 2018 at 12:36 pm

    I’ve just added a fresh new list. This is by far the biggest list to date. I hope you all are having a great week. Take care and happy link building.

  11. Free auto approve list 7-20-2018

    July 21, 2018 at 4:30 am

    I just updated my site with a new list. I hope you all are having a great week.

  12. Free auto approve list 7-20-2018

    July 21, 2018 at 12:10 pm

    I just updated my site with a new list. I hope you all are having a great week.

  13. Free auto approve list 7-27-2018

    August 2, 2018 at 12:05 am

    I added a new list. As you’ll see it’s bigger than most of them. I hope you all have had a great week!

  14. Free auto approve list 7-27-2018

    August 3, 2018 at 3:15 pm

    I added a new list. As you’ll see it’s bigger than most of them. I hope you all have had a great week!

  15. Prudence Sassman

    August 26, 2018 at 3:03 pm

    I precisely had to say thanks once again. I do not know the things that I could possibly have taken care of without the pointers discussed by you concerning that subject matter. It previously was a real fearsome setting in my circumstances, but looking at a professional technique you solved it made me to cry for contentment. I am grateful for this help as well as expect you really know what a powerful job you were getting into training people using your webpage. Probably you haven’t come across any of us.

  16. Free auto approve list 8-9-2018

    August 27, 2018 at 3:00 pm

    I’ve been having issues with my Windows hosting. It has set me back quite a bit while making the next list. This is the current list that I have. I should add another list in less than a week. I’ll let you all know when the next list is ready. Thank you for your patience.

  17. Hector Sandow

    August 28, 2018 at 8:59 pm

    With thanks! Valuable information!

  18. Maxwell Petrouits

    August 29, 2018 at 8:00 am

    Don’t wear seat belts lest you drown in you own urine?

  19. Nona Moosman

    August 29, 2018 at 5:40 pm

    With thanks! Valuable information!

  20. 9213

    September 17, 2018 at 5:04 pm

    Ama try to place this in studio so will perhaps reply…

  21. amrit

    September 22, 2018 at 1:31 pm

    hello admin, sir there is problem in my project pls help me to solve it

  22. amrit

    September 22, 2018 at 1:32 pm

    pls reply soon sir

  23. Auto approve list

    September 22, 2018 at 7:28 pm

    I’m compiling my latest list. I’m sorry there hasn’t been any recent updates.

    I’ve had some problems building the list along the way.
    I’ll talk more about that at a later date.

  24. Free auto approve list 9-23-2018

    September 24, 2018 at 12:03 pm

    The method and software that I use now to compile the list has changed.
    I hope to build a better list as I learn how. Read all about it in my latest blog
    post. Have a great day everyone!

  25. Free auto approve list 9-25-2018

    September 26, 2018 at 10:40 pm

    I added a new blog post yesterday. There’s a smaller list than usual in it.
    I’m currently working on a bigger list. It’s going to take some time
    to compile it. I hope all of you are having a good week.
    I’m planning on doing some design changes to my site.
    I’m also thinking about adding some new things
    too. I’ll talk more about that in the days and weeks to come.

  26. Free auto approve list 9-25-2018

    September 27, 2018 at 11:05 am

    I added a new blog post yesterday. There’s
    a smaller list than usual in it. I’m currently working
    on a bigger list. It’s going to take some time to compile it.
    I hope all of you are having a good week. I’m planning on doing
    some design changes to my site. I’m also thinking about adding some new things
    too. I’ll talk more about that in the days and weeks to come.

  27. Free auto approve list 9-28-2018

    September 28, 2018 at 5:56 pm

    I’m working on a new list. I’m hopeful that this one will be much bigger.
    I made some announcements about my future site plans. I’m going
    to be adding some new stuff soon. You’ll definitely want to stay tuned for that.
    Thanks for your time and have a good weekend!

  28. Free auto approve list 9-28-2018

    September 30, 2018 at 1:13 am

    I’m working on a new list. I’m hopeful that this one will be much bigger.

    I made some announcements about my future site plans.
    I’m going to be adding some new stuff soon. You’ll definitely want to stay tuned for
    that. Thanks for your time and have a good weekend!

  29. Free auto approve list 9-28-2018

    October 1, 2018 at 7:26 am

    I’m working on a new list. I’m hopeful that this one will be much bigger.
    I made some announcements about my future
    site plans. I’m going to be adding some new stuff soon.
    You’ll definitely want to stay tuned for that.
    Thanks for your time and have a good weekend!

  30. Free auto approve list 10-2-2018

    October 2, 2018 at 10:57 pm

    I just updated my site with a new list. I’ve also come to a new conclusion about how many of these links exist out there.
    I’m not too sure if my conclusion is right or
    not. Read all about it in my latest blog post.
    See you there!

  31. Find a fuck buddy

    October 4, 2018 at 9:41 pm

    This excellent website really has all of the information and facts I wanted concerning this subject and didn’t know
    who to ask.

  32. Free Online Dating

    October 7, 2018 at 4:43 pm

    Yes! Finally something about Free Online Dating.

  33. Cryptocurrency Institute

    October 9, 2018 at 1:02 am

    I wanted to thank you for this very good read!! I absolutely loved every
    little bit of it. I have you book marked to check
    out new things you post…

  34. furtdsolinopv

    October 9, 2018 at 2:50 am

    Very good written story. It will be supportive to anyone who utilizes it, including myself. Keep doing what you are doing – can’r wait to read more posts.

  35. NarcosXXX

    October 9, 2018 at 12:31 pm

    With havin so much written content do you ever run into any issues of
    plagorism or copyright infringement? My website has a lot of exclusive content I’ve either created myself or outsourced but it looks like a lot of it is popping it up all over the web
    without my authorization. Do you know any techniques to help prevent content from being stolen?
    I’d genuinely appreciate it.

  36. Meet Local Couples

    October 11, 2018 at 7:16 am

    This is really interesting, You are a very skilled blogger.

    I have joined your rss feed and look forward to seeking more of your great post.

    Also, I’ve shared your site in my social networks!

  37. Snack Subscription

    October 12, 2018 at 5:09 pm

    Attractive section of content. I just stumbled upon your web site and in accession capital
    to assert that I acquire actually enjoyed account your
    blog posts. Any way I’ll be subscribing to your feeds and even I achievement you access consistently fast.

  38. Snack Subscription

    October 14, 2018 at 12:16 am

    This post is invaluable. When can I find out more?

  39. Free live cams

    October 15, 2018 at 3:22 am

    Are you looking to see and talk to some really sexy girls?
    These girls are super dirty and it doesn’t cost a single cent to talk to them.
    It’s wall to wall babes at this site. Just visit https://t.irtyc.com/cvezzegjk?aff_id=29696&offer_id=3664&bo=2779,2778,2777,2776,3391 and sign up for your free account.
    You’ll be talking to these total babes in a matter of no time flat!

  40. Free live cams

    October 16, 2018 at 11:44 am

    Are you looking to see and talk to some really sexy girls?
    These girls are super dirty and it doesn’t cost a single
    cent to talk to them. It’s wall to wall babes
    at this site. Just visit https://t.irtyc.com/cvezzegjk?aff_id=29696&offer_id=3664&bo=2779,2778,2777,2776,3391 and sign up for your
    free account. You’ll be talking to these total babes in a matter of
    no time flat!

  41. Free auto approve list 10-17-2018

    October 20, 2018 at 12:25 pm

    There’s been a lot of changes since I last left a comment about my site.

    I’m starting to add the new features that I’ve wanted to.

    I hope in the next few weeks that all of it will be up and running.
    It’s going to take time and I haven’t had much of it to
    dedicate to this project. I thank you all for visiting my site and I hope you have a great weekend!

  42. Free auto approve list 10-17-2018

    October 21, 2018 at 8:37 pm

    There’s been a lot of changes since I last left a comment
    about my site. I’m starting to add the new features that I’ve wanted to.
    I hope in the next few weeks that all of it will be up and running.
    It’s going to take time and I haven’t had much of it to dedicate to this project.
    I thank you all for visiting my site and I hope you have a great weekend!

  43. Free auto approve list 10-17-2018

    October 23, 2018 at 4:49 am

    There’s been a lot of changes since I last left a comment about my site.

    I’m starting to add the new features that I’ve wanted to.
    I hope in the next few weeks that all of it will be up and running.

    It’s going to take time and I haven’t had much of it to dedicate to this
    project. I thank you all for visiting my site and I hope you have a
    great weekend!

  44. Trade Bitcoin

    November 8, 2018 at 9:53 am

    I just like the helpful info you supply in your articles.
    I’ll bookmark your weblog and take a look at again right
    here frequently. I am relatively sure I’ll learn a lot of new stuff proper here!

    Best of luck for the next!

  45. Trade Bitcoin

    November 11, 2018 at 3:45 am

    If you want to obtain a great deal from this piece of writing then you have to apply such strategies to
    your won website.

  46. Free Proxy List

    November 26, 2018 at 6:57 pm

    Every 60 minutes there are new public proxies added. You
    can directly import these into your SEO tools or
    do it manually. There are proxies for ScrapeBox and all other tools.
    Let me know if you need free public proxies for other tools.
    I’ll try to add them if I can.

  47. Free Expired Web 2.0 List

    November 26, 2018 at 10:52 pm

    Here is where I put all of my expired web 2.0 accounts.
    I scrape massive lists and then check to see if they’re expired.
    I think you’ll be surprised by the number of accounts that I come across.
    Hopefully, you’ll be able to put these expired accounts to good use.

  48. GSA Auto Approve List

    November 27, 2018 at 4:16 am

    Did you know that my lists can be used with GSA? They can. I’m always working hard to
    improve the quality of my lists. Check them out and see if you can put
    them to good use. Thanks for visiting my site and
    have a great day.

  49. Free Expired Web 2.0 List

    November 29, 2018 at 5:24 am

    Here is where I put all of my expired web 2.0 accounts. I scrape massive
    lists and then check to see if they’re expired.

    I think you’ll be surprised by the number of accounts that I come across.

    Hopefully, you’ll be able to put these expired accounts to good use.

  50. Free Proxy List

    November 29, 2018 at 7:23 am

    Every 60 minutes there are new public proxies added.
    You can directly import these into your SEO tools or do
    it manually. There are proxies for ScrapeBox and all
    other tools. Let me know if you need free public proxies for other tools.
    I’ll try to add them if I can.

  51. GSA Auto Approve List

    November 30, 2018 at 4:48 am

    Did you know that my lists can be used with
    GSA? They can. I’m always working hard to improve the quality of my lists.
    Check them out and see if you can put them to good
    use. Thanks for visiting my site and have a great day.

  52. Free Expired Web 2.0 List

    November 30, 2018 at 4:01 pm

    Here is where I put all of my expired web 2.0 accounts.

    I scrape massive lists and then check to see if they’re
    expired. I think you’ll be surprised by the number of accounts that I come
    across. Hopefully, you’ll be able to put these
    expired accounts to good use.

  53. Funny Picture

    December 19, 2018 at 1:16 pm

    Wow, awesome blog layout! How long have you been blogging for?

    you made blogging look easy. The overall look of your website is magnificent, let alone the content!

  54. suresh

    December 20, 2018 at 10:13 am

    ur code its really good .But I want group chat code in ur side

  55. Funny Picture

    December 21, 2018 at 12:19 am

    I’m not that much of a internet reader to be honest
    but your sites really nice, keep it up! I’ll
    go ahead and bookmark your site to come back in the future.
    All the best

  56. Funny Picture

    December 22, 2018 at 7:36 am

    Sweet blog! I found it while browsing on Yahoo News.
    Do you have any suggestions on how to get listed
    in Yahoo News? I’ve been trying for a while but I never seem to get there!
    Thank you

  57. Funny Picture

    December 23, 2018 at 5:10 pm

    Every weekend i used to pay a quick visit this web site, because i want enjoyment, for the reason that
    this this web site conations actually good funny data too.

  58. no credit check loans tallahassee

    December 24, 2018 at 9:47 am

    {Sounds actually compelling. Can I pose a question?|

  59. The Red Tea Detox

    December 26, 2018 at 4:42 pm

    You are so cool! I don’t think I have read through anything like this
    before. So wonderful to find another person with some original thoughts on this
    subject. Seriously.. many thanks for starting this up.
    This site is one thing that is required on the web, someone with a little originality!

  60. The Red Tea Detox

    December 27, 2018 at 11:13 pm

    I think the admin of this site is actually working hard in support of his website,
    for the reason that here every information is quality based stuff.

  61. The Red Tea Detox

    December 29, 2018 at 6:13 am

    Hello there, just became aware of your blog through Google, and found
    that it is really informative. I’m gonna watch out for brussels.
    I will appreciate if you continue this in future.
    Lots of people will be benefited from your writing.
    Cheers!

  62. Funny Cat Picture

    January 4, 2019 at 4:59 am

    Inspiring story there. What happened after? Thanks!

  63. Octopus

    January 5, 2019 at 12:23 pm

    I got this website from my buddy who told me on the
    topic of this web page and now this time I am browsing this web site and reading
    very informative content at this place.

  64. loan no credit check dubai

    January 12, 2019 at 10:43 pm

    Bless you-thank you-Care to clear up some misconceptions?

  65. Funny Beard

    January 21, 2019 at 6:21 pm

    Helpful information. Fortunate me I discovered your
    website by accident, and I am shocked why this coincidence did not came about in advance!
    I bookmarked it.

  66. Funny Beard

    January 23, 2019 at 4:05 am

    Why people still use to read news papers when in this
    technological globe the whole thing is existing on web?

  67. Funny Beard

    January 24, 2019 at 4:34 pm

    If some one wants to be updated with hottest technologies afterward he must
    be visit this site and be up to date all the time.

  68. Perfect Ass

    January 26, 2019 at 1:34 pm

    Hello There. I discovered your blog the use of msn. This is a really well written article.

    I’ll be sure to bookmark it and return to learn extra of your useful
    information. Thanks for the post. I will certainly return.

  69. loans with no credit check

    February 19, 2019 at 2:56 pm

    !This could be a little off the mark. Can you add some more detail for me please? 🙂

  70. Janel Guiher

    February 20, 2019 at 2:05 am

    I enjoy your piece of work, thankyou for all the useful articles.

  71. Free Adult Games

    February 20, 2019 at 11:19 am

    It’s remarkable to pay a quick visit this website and reading the views of all friends about this article, while I am
    also eager of getting know-how.

  72. pretty korean lady trump

    February 20, 2019 at 12:59 pm

    Your style is very unique compared to other people I’ve read stuff from.
    Thanks for posting when you have the opportunity, Guess I’ll just bookmark this site.

  73. Big Tits Webcams

    February 21, 2019 at 3:43 am

    Woah! I’m really enjoying the template/theme of this blog.
    It’s simple, yet effective. A lot of times it’s very hard to get that “perfect balance” between user friendliness and visual appearance.
    I must say you’ve done a great job with this. In addition, the blog loads super quick for me on Chrome.
    Exceptional Blog!

  74. Horny Black Girlfriends

    February 21, 2019 at 12:41 pm

    Have you ever considered publishing an ebook or guest authoring on other blogs?
    I have a blog based on the same subjects you discuss and
    would love to have you share some stories/information. I know my
    viewers would enjoy your work. If you’re even remotely interested, feel free to send me an e mail.

  75. Best Online Dating

    February 22, 2019 at 12:44 am

    Awesome blog! Do you have any tips for aspiring writers?
    I’m planning to start my own blog soon but I’m a little lost
    on everything. Would you advise starting with a
    free platform like WordPress or go for a paid option? There are so many
    options out there that I’m totally confused .. Any recommendations?
    Thanks a lot!

  76. Date Fat Girls

    February 22, 2019 at 7:15 pm

    My brother suggested I would possibly like this website.
    He used to be totally right. This submit actually made my day.
    You cann’t imagine simply how much time I had spent for this info!
    Thank you!

  77. Horny Black Girlfriends

    February 22, 2019 at 11:18 pm

    Thanks a lot for sharing this with all folks you actually recognise what you are speaking about!
    Bookmarked. Please also consult with my website =).
    We can have a hyperlink alternate arrangement among us

  78. SnapGene 4.1.27 Crack + Key With Keygen 

    February 25, 2019 at 1:26 am

    What’s Happening i am new to this, I stumbled upon this I have found It absolutely helpful and it has aided me out loads. I hope to contribute & assist other users like its aided me. Great job.

  79. Date Fat Girls

    February 25, 2019 at 6:02 am

    I enjoy looking through an article that can make men and women think.
    Also, thank you for allowing me to comment!

  80. Funny Bird Playing Drum

    February 25, 2019 at 3:47 pm

    It’s an awesome paragraph designed for all the internet users; they will get advantage from it I am sure.

  81. Funny Oscars Meme

    February 25, 2019 at 8:17 pm

    Hi it’s me, I am also visiting this web page on a
    regular basis, this site is genuinely fastidious and the visitors are genuinely sharing fastidious thoughts.

  82. Super Tight Asshole

    February 26, 2019 at 4:38 am

    Do you mind if I quote a couple of your articles as long
    as I provide credit and sources back to your blog? My blog is in the exact same area of interest as
    yours and my users would definitely benefit from
    a lot of the information you present here. Please
    let me know if this ok with you. Appreciate
    it!

  83. Horny Black Girlfriends

    February 26, 2019 at 9:36 pm

    Hi, i think that i saw you visited my web site thus i came
    to “return the favor”.I’m attempting to find things to improve my web site!I suppose its ok to use a
    few of your ideas!!

  84. Sleep With Younger Women

    February 26, 2019 at 11:36 pm

    Very good post! We are linking to this great content on our website.
    Keep up the great writing.

  85. Cute Brunette Cam Girl

    February 27, 2019 at 9:36 am

    Wonderful beat ! I wish to apprentice while you amend your web site, how could i subscribe for a
    blog site? The account helped me a acceptable deal.
    I had been a little bit acquainted of this your broadcast offered
    bright clear idea

  86. Hairy Cams

    February 27, 2019 at 10:57 am

    Hello colleagues, how is all, and what you desire to say concerning
    this piece of writing, in my view its actually amazing designed for me.

  87. Hairy Pussy Picture

    February 27, 2019 at 12:15 pm

    These are actually fantastic ideas in regarding blogging.

    You have touched some good points here. Any way keep up wrinting.

  88. cocoppa play mod

    February 28, 2019 at 12:38 am

    Excellent goods from you, man. I have understand your stuff previous to and you’re just too great. I actually like what you have acquired here, certainly like what you are saying and the way in which you say it. You make it entertaining and you still care for to keep it wise. I can not wait to read far more from you. This is actually a terrific web site.

  89. Mpendulo Chiliza

    March 5, 2019 at 5:44 pm

    wow, than you so much

  90. Blonde Cam girls

    March 8, 2019 at 5:09 am

    Very energetic article, I loved that a lot. Will there be a part 2?

  91. Panties Cams

    March 8, 2019 at 9:37 am

    It’s really a nice and helpful piece of information. I’m
    happy that you simply shared this useful info with us. Please keep us informed like
    this. Thank you for sharing.

  92. Cuckold Cams

    March 11, 2019 at 6:59 am

    Since the admin of this web site is working, no hesitation very soon it will
    be well-known, due to its feature contents.

  93. Squirt Cams

    March 11, 2019 at 12:38 pm

    We’re a bunch of volunteers and opening a new scheme in our community.
    Your site provided us with useful information to work on. You have done an impressive
    process and our entire neighborhood will be grateful to
    you.

  94. laura_cherry

    March 13, 2019 at 3:42 am

    I’ve been browsing online more than three hours today, yet I never found any
    interesting article like yours. It’s pretty worth enough for me.

    Personally, if all site owners and bloggers made good content
    as you did, the net will be much more useful than ever before.

  95. sexygirlforyouuu

    March 13, 2019 at 9:41 am

    We stumbled over here coming from a different web page and thought I might check things out.

    I like what I see so now i am following you. Look forward to
    exploring your web page for a second time.

  96. Big Boobs Live Cams

    March 16, 2019 at 10:08 am

    I am really enjoying the theme/design of your site.

    Do you ever run into any browser compatibility problems?
    A few of my blog readers have complained about my website
    not working correctly in Explorer but looks great in Safari.

    Do you have any tips to help fix this issue?

  97. loonadministratie

    March 17, 2019 at 10:39 am

    Do you have any video of that? I’d want
    to find out more details.

  98. kayribbons

    March 17, 2019 at 4:54 pm

    Having read this I thought it was extremely enlightening.
    I appreciate you spending some time and effort to put this informative article together.
    I once again find myself spending way too much time both reading and leaving
    comments. But so what, it was still worthwhile!

  99. sexykinkycouple20

    March 17, 2019 at 8:25 pm

    I go to see day-to-day a few blogs and sites to read content, except
    this webpage offers quality based writing.

  100. Anal Cams

    March 18, 2019 at 12:48 am

    I constantly spent my half an hour to read this website’s articles or reviews daily along
    with a mug of coffee.

  101. Horny Girls Cam

    March 18, 2019 at 6:58 am

    Wow, fantastic blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your website is fantastic, let alone the content!

  102. Aborcja Słowacja

    March 18, 2019 at 11:07 am

    Aw, this was a really nice post. In idea I would like to put in writing like this additionally ? taking time and actual effort to make a very good article? but what can I say? I procrastinate alot and by no means seem to get something done.

  103. Tattooed Cam Girls

    March 18, 2019 at 5:38 pm

    You have made some decent points there. I checked on the
    net for more info about the issue and found most people will go along
    with your views on this site.

  104. heatherbby9

    March 18, 2019 at 6:49 pm

    Thanks very interesting blog!

  105. buy shared proxies

    March 19, 2019 at 8:31 am

    Great goods from you, man. I’ve understand your stuff previous to and you are just too excellent. I actually like what you’ve acquired here, really like what you’re saying and the way in which you say it. You make it entertaining and you still take care of to keep it wise. I cant wait to read much more from you. This is actually a tremendous web site.

  106. Funny Pig Ears

    March 19, 2019 at 2:31 pm

    Hi, I do believe this is an excellent blog.
    I stumbledupon it 😉 I may return once again since I book-marked it.
    Money and freedom is the best way to change, may you be rich and
    continue to guide others.

  107. Nude Office Cams

    March 19, 2019 at 4:44 pm

    Its like you learn my thoughts! You seem to know so much about this, such as
    you wrote the e book in it or something. I feel that you simply
    can do with some percent to pressure the message home a bit, but other
    than that, that is magnificent blog. A great read.
    I will certainly be back.

  108. Naked Shower

    March 20, 2019 at 7:36 am

    I was suggested this blog by way of my cousin. I am no longer
    sure whether this post is written by him as no one else recognize such exact approximately my difficulty.
    You are wonderful! Thank you!

  109. siswet19

    March 20, 2019 at 4:56 pm

    Your style is so unique compared to other people I’ve
    read stuff from. Thank you for posting when you have the opportunity, Guess I’ll just bookmark this page.

  110. kids costumes canada

    March 20, 2019 at 10:44 pm

    You are a poor junior professor of computer science and are short of cash.. A computer magazine offers you a steady side job writing. one short article a month for three years. 36 months. The catch is the editor wants you to write about. the 12 different types of computer programing languages. And the 12 different types of computer tasks.. And the 12 different types of computer programmers.. . Before you get your first check the editor wants 3 lists of 12 types.. . So have a slice of wonder bread (builds strong bodies twelve ways) and. make a list of the 12 different types of computer programmers.. . Note: the other two lists are posted as similar, but separate questions..

  111. kataleyahotpussy

    March 21, 2019 at 6:58 pm

    Hey there! Do you use Twitter? I’d like to follow you if that would be ok.
    I’m undoubtedly enjoying your blog and look forward to new posts.

  112. Cuckold Cams

    March 22, 2019 at 10:38 pm

    Spot on with this write-up, I absolutely believe this amazing site needs a great deal more
    attention. I’ll probably be returning to see
    more, thanks for the information!

  113. Butt Porn

    March 23, 2019 at 2:04 am

    Thankfulness to my father who told me on the topic of this
    website, this blog is truly awesome.

  114. moja nowa 347

    March 23, 2019 at 7:51 am

    Keep on working, great job!

  115. Paisita Noche Chance Loterias de Colombia

    March 23, 2019 at 11:05 pm

    Hey, you used to write excellent, but the last several posts have been kinda boring… I miss your super writings. Past several posts are just a little out of track! come on!

  116. Butt Porn

    March 24, 2019 at 10:50 am

    Howdy! This is kind of off topic but I need some advice from
    an established blog. Is it tough to set up your own blog?
    I’m not very techincal but I can figure things out
    pretty fast. I’m thinking about setting up my own but
    I’m not sure where to start. Do you have any ideas or suggestions?

    With thanks

  117. sexygirlforyouuu

    March 24, 2019 at 9:18 pm

    Hi, for all time i used to check webpage posts here early
    in the break of day, because i like to find out more
    and more.

  118. Naked Nerds

    March 25, 2019 at 12:58 am

    I absolutely love your blog and find a lot
    of your post’s to be precisely what I’m looking for.

    Would you offer guest writers to write content for you personally?
    I wouldn’t mind creating a post or elaborating on many of the subjects you write in relation to here.
    Again, awesome website!

  119. Mistress Cams

    March 25, 2019 at 3:05 am

    It’s hard to come by well-informed people for this subject, but you seem
    like you know what you’re talking about! Thanks

  120. minecraft

    March 25, 2019 at 3:58 am

    What a stuff of un-ambiguity and preserveness of valuable experience regarding unexpected emotions.

  121. minecraft

    March 25, 2019 at 12:23 pm

    I do not know whether it’s just me or if perhaps everybody
    else experiencing problems with your website.
    It appears as if some of the text on your content are running off the screen. Can someone else
    please comment and let me know if this is happening to them as well?
    This could be a problem with my browser because I’ve had this happen previously.

    Thanks

  122. Tattooed Cam Girls

    March 25, 2019 at 3:27 pm

    Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter
    updates. I’ve been looking for a plug-in like this for quite some time
    and was hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy
    reading your blog and I look forward to your new updates.

  123. Big Boobs Live Cams

    March 26, 2019 at 3:02 am

    I have read so many posts concerning the blogger lovers however
    this paragraph is actually a nice piece of writing, keep it up.

  124. lalikuo

    March 26, 2019 at 5:18 am

    Hello! I just wish to offer you a huge thumbs up for your excellent information you’ve got here on this
    post. I’ll be coming back to your web site for more soon.

  125. laura_cherry

    March 26, 2019 at 2:25 pm

    That is really attention-grabbing, You’re a very skilled blogger.
    I have joined your rss feed and sit up for in the hunt for more of your great post.
    Also, I have shared your site in my social networks

  126. Hisako Sjolund

    March 27, 2019 at 1:32 am

    Really thought out! Found myself staring at it for minutes.

  127. Hard Salami

    March 27, 2019 at 2:10 am

    Sweet blog! I found it while surfing around on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News?
    I’ve been trying for a while but I never seem to get
    there! Cheers

  128. sexygirlforyouuu

    March 28, 2019 at 5:54 am

    You should be a part of a contest for one of the finest websites on the internet.
    I most certainly will recommend this website!

  129. ölü sikici

    March 28, 2019 at 2:11 pm

    Say, you got a nice blog post.Thanks Again.

  130. necrophilia sex

    March 28, 2019 at 2:37 pm

    A big thank you for your blog article.Thanks Again. Want more.

  131. Naked Shower

    March 28, 2019 at 4:23 pm

    Thanks for sharing your thoughts. I truly appreciate your efforts and
    I will be waiting for your next write ups thank you once
    again.

  132. minecraft

    March 28, 2019 at 6:15 pm

    I am sure this post has touched all the internet viewers, its really
    really good article on building up new weblog.

  133. sik

    March 28, 2019 at 11:15 pm

    thank you web sites.

  134. heatherbby9

    March 28, 2019 at 11:37 pm

    I blog frequently and I really appreciate your content.
    This great article has truly peaked my interest.
    I’m going to book mark your blog and keep checking
    for new details about once per week. I opted in for your RSS
    feed as well.

  135. Gothenburg Twitter

    March 29, 2019 at 4:38 am

    I was able to find good info from your blog posts.

  136. Gothenburg Twitter

    March 29, 2019 at 6:24 am

    What’s Going down i am new to this, I stumbled upon this I have found
    It positively useful and it has aided me out loads.
    I hope to give a contribution & help other users like its aided me.
    Great job.

  137. kataleyahotpussy

    March 29, 2019 at 7:57 pm

    Excellent post. I was checking continuously this
    blog and I’m impressed! Very helpful info specifically the last part :
    ) I care for such info a lot. I was looking
    for this particular info for a very long time.
    Thank you and good luck.

  138. swiss army knife movies

    March 30, 2019 at 7:30 pm

    І ⅼⲟve swiss army knife аnd І haѵe a ѕeveral of them.

  139. Instagram bio links

    March 30, 2019 at 11:21 pm

    Hi there! I know this is kind of off topic but I was wondering if you knew where I could get a captcha plugin for my comment form? I’m using the same blog platform as yours and I’m having problems finding one? Thanks a lot!

  140. Hard Salami

    March 31, 2019 at 1:11 am

    Hi there! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard on. Any
    recommendations?

  141. Cute Hedgehog

    March 31, 2019 at 3:46 pm

    I am regular reader, how are you everybody?
    This post posted at this web page is truly fastidious.

  142. reddit

    March 31, 2019 at 4:13 pm

    You have done a beautiful job with this write-up. Kudos.

  143. Live Masturbation

    March 31, 2019 at 7:29 pm

    Your style is really unique compared to other folks I have read stuff from.
    Thanks for posting when you’ve got the opportunity, Guess I’ll just book mark this web site.

  144. Remedios Older

    April 1, 2019 at 2:07 am

    It’s simple, yet effective. A lot of times it’s {very

  145. Naked Nerds

    April 1, 2019 at 8:11 am

    I simply could not leave your website prior to suggesting
    that I actually enjoyed the usual information an individual provide for your
    visitors? Is gonna be again frequently to check up on new posts

  146. Pussy Fingering Cams

    April 1, 2019 at 11:05 am

    Wow, awesome blog layout! How long have you ever been running a blog for?
    you made running a blog glance easy. The entire glance of your website is
    excellent, let alone the content material!

  147. necrophilia sex

    April 1, 2019 at 3:03 pm

    I cannot thank you enough for the post.Really looking forward to read more. Cool.

  148. necrophilia sex

    April 1, 2019 at 4:24 pm

    Say, you got a nice blog post.Thanks Again.

  149. Osvaldo Gammel

    April 1, 2019 at 6:45 pm

    This is a topic that is close to my heart… Best wishes! Where are your contact details though?

  150. Cuckold Cams

    April 1, 2019 at 7:05 pm

    I have been surfing online more than three hours today, yet
    I never found any interesting article like yours.

    It’s pretty worth enough for me. In my view, if all website owners and
    bloggers made good content as you did, the web will be a lot more useful than ever before.

  151. Cute Hedgehog

    April 2, 2019 at 4:24 am

    After looking over a few of the blog posts on your site, I honestly like your technique of writing a blog.
    I added it to my bookmark website list and will be checking back in the near future.
    Take a look at my website as well and let me know how you feel.

  152. Sherron Brede

    April 2, 2019 at 9:34 am

    I can’t say that I completely agree, but then again I’ve never really thought of it quite like that before. Thanks for giving me something to think about when I’m supposed to have an empty mind while trying to fall asleep tonight lol..

  153. Burl Tonti

    April 2, 2019 at 10:23 am

    Do you mind if I quote a few of your articles as long as I provide credit and sources back to your weblog? My blog site is in the very same niche as yours and my users would definitely benefit from a lot of the information you provide here. Please let me know if this alright with you. Cheers!

  154. kayribbons

    April 2, 2019 at 11:29 am

    Thanks for sharing your thoughts. I really appreciate your efforts
    and I will be waiting for your next post thank you once again.

  155. sexykinkycouple20

    April 3, 2019 at 9:12 am

    Whoa! This blog looks just like my old one! It’s on a completely different subject but it
    has pretty much the same page layout and design. Wonderful choice
    of colors!

  156. Mario Curlee

    April 3, 2019 at 12:28 pm

    Hi there very nice website!! Man .. Excellent .. Wonderful .. I’ll bookmark your blog and take the feeds also…I am glad to search out a lot of useful information here within the publish, we want work out more strategies on this regard, thanks for sharing.

  157. siswet19

    April 3, 2019 at 4:45 pm

    Thankfulness to my father who told me concerning this website,
    this web site is genuinely amazing.

  158. Fat Girl Cams

    April 3, 2019 at 5:27 pm

    Just want to say your article is as astounding. The clarity in your post is simply excellent and
    i could assume you’re an expert on this subject.
    Fine with your permission let me to grab your RSS feed to keep up to date with forthcoming post.
    Thanks a million and please carry on the gratifying
    work.

  159. lalikuo

    April 3, 2019 at 7:01 pm

    There is certainly a lot to learn about this issue. I really like all the
    points you have made.

  160. Dirty Girl Cam

    April 3, 2019 at 7:01 pm

    Simply desire to say your article is as surprising.
    The clarity for your put up is just excellent and i can assume you’re knowledgeable in this
    subject. Fine with your permission allow me to grab your RSS feed to stay updated with coming near near
    post. Thank you one million and please continue the gratifying work.

  161. necrophilia sex

    April 4, 2019 at 4:14 am

    Hmm, that is some compelling information youve got going! Makes me scratch my head and think. Keep up the good writing

  162. Reginald Ziminski

    April 4, 2019 at 2:58 pm

    It’s onerous to search out educated individuals on this subject, but you sound like you understand what you’re talking about! Thanks

  163. Live Masturbation

    April 6, 2019 at 3:41 am

    Great beat ! I would like to apprentice while you amend your web site, how could i subscribe for a blog web site?
    The account helped me a acceptable deal.
    I had been a little bit acquainted of this your
    broadcast offered bright clear concept

  164. Webroot Security Suite Tech Support

    April 6, 2019 at 4:46 pm

    Good article! We will be linking to this great content on our website. Keep up the good writing.

  165. çocuk sikici

    April 7, 2019 at 5:34 am

    I think that is an fascinating point, it made me think a bit. Thanks for sparking my thinking cap. Sometimes I get so much in a rut that I just believe like a record.

  166. Pussy Fingering Cams

    April 8, 2019 at 7:17 am

    When someone writes an article he/she retains the
    idea of a user in his/her mind that how a user can understand it.
    Therefore that’s why this paragraph is perfect. Thanks!

  167. check my site

    April 8, 2019 at 7:46 pm

    You produced some decent points there. I looked online to the issue and discovered most people is going in addition to using your site.

  168. Cam Girls Smoking

    April 8, 2019 at 8:22 pm

    This is very interesting, You are a very skilled blogger.
    I have joined your rss feed and look forward to in quest of
    more of your wonderful post. Also, I have shared your web site in my social networks

  169. Cute Hedgehog

    April 8, 2019 at 8:55 pm

    It’s genuinely very complex in this active life to listen news on Television, therefore I only use internet for that purpose,
    and take the most up-to-date information.

  170. laura_cherry

    April 9, 2019 at 12:32 am

    Hey exceptional blog! Does running a blog similar
    to this take a lot of work? I’ve virtually no expertise in programming
    however I had been hoping to start my own blog soon. Anyhow,
    should you have any ideas or techniques for new blog owners please share.
    I know this is off subject however I simply needed to ask.

    Thanks!

  171. Funny Pig Ears

    April 9, 2019 at 1:54 am

    Hey I know this is off topic but I was wondering if you knew of any widgets I could
    add to my blog that automatically tweet my newest twitter updates.
    I’ve been looking for a plug-in like this for quite some time and was hoping
    maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.

  172. çocuk sikici

    April 9, 2019 at 5:54 am

    A big thank you for your blog article.Thanks Again. Want more.

    1. Adeel

      May 16, 2019 at 6:33 am

      bro can you tell me what type of file is this.”https://chatapp-dc05b.firebaseio.com/users.json”
      how can i get from my project?

      1. admin

        June 13, 2019 at 7:09 pm

        Please read the article.

  173. Mistress Cams

    April 9, 2019 at 6:58 am

    It’s a shame you don’t have a donate button! I’d certainly donate
    to this brilliant blog! I guess for now i’ll settle for bookmarking and adding your RSS feed
    to my Google account. I look forward to new updates and will share this website with my Facebook group.
    Talk soon!

  174. Fat Girl Cams

    April 9, 2019 at 7:25 am

    Hi! Do you know if they make any plugins to assist with SEO?
    I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good results.
    If you know of any please share. Appreciate it!

  175. snoreblock opinie

    April 9, 2019 at 11:23 am

    Youre so cool! I dont suppose Ive read anything such as this prior to. So nice to locate somebody with many original ideas on this subject. realy i appreciate you for starting this up. this fabulous website is one area that is needed online, someone with a bit of originality. helpful purpose of bringing a new challenge towards web!

  176. çocuk sikici

    April 9, 2019 at 5:18 pm

    VRy interesting to read it.

  177. wikidot

    April 9, 2019 at 6:13 pm

    the more i read your blog, i feel you’ve done a very good job with this.

  178. necrophilia sex

    April 10, 2019 at 4:55 am

    I cannot thank you enough for the blog post.Really looking forward to read more. Awesome.

  179. Jacob Hermanns

    April 10, 2019 at 1:32 pm

    Wow! This could be one particular of the most beneficial blogs We’ve ever arrive across on this subject. Actually Great. I’m also a specialist in this topic so I can understand your hard work.

  180. russell brunson clickfunnels

    April 11, 2019 at 10:33 am

    I was excited to uncover this site. I want to to thank you for your time just for this wonderful read!! I definitely really liked every part of it and i also have you book-marked to look at new stuff in your web site.

  181. minecraft

    April 11, 2019 at 9:07 pm

    It’s hard to find knowledgeable people about this subject, but you sound like you know what
    you’re talking about! Thanks

  182. Hershel Bowdoin

    April 12, 2019 at 3:09 pm

    I got what you intend, appreciate it for posting .Woh I am lucky to find this website through google.

  183. ölü sikici

    April 13, 2019 at 5:33 am

    I cannot thank you enough for the post.Really looking forward to read more. Cool.

  184. minecraft

    April 13, 2019 at 10:16 am

    If some one wishes to be updated with newest technologies then he must be visit this web site and be up to date daily.

  185. siswet19

    April 13, 2019 at 4:29 pm

    Appreciate the recommendation. Let me try it out.

  186. harshwardhan's solo ads

    April 14, 2019 at 6:18 am

    You ought to be a part of a contest for one of the finest sites on the web. I will highly recommend this web site

  187. çocuk sikici

    April 14, 2019 at 12:11 pm

    VRy interesting to read it.

  188. Butt Porn

    April 14, 2019 at 1:47 pm

    I am sure this post has touched all the internet viewers,
    its really really fastidious article on building up new
    weblog.

  189. Naked Shower

    April 14, 2019 at 2:52 pm

    I read this piece of writing completely
    concerning the resemblance of most recent and earlier technologies, it’s amazing
    article.

  190. solo ads for mlm

    April 15, 2019 at 1:34 pm

    The next time I read a blog, Hopefully it does not fail me as much as this particular one. After all, Yes, it was my choice to read, but I actually thought you would probably have something useful to say. All I hear is a bunch of moaning about something that you can fix if you were not too busy searching for attention.

  191. honey_fae

    April 17, 2019 at 5:20 am

    I do not even know how I ended up here, but I thought this post was good.
    I do not know who you are but definitely you are going to
    a famous blogger if you are not already 😉 Cheers!

  192. ölü sikici

    April 17, 2019 at 10:48 am

    Thank you for your blog article.Really looking forward to read more. Will read on…

  193. Tattooed Cam Girls

    April 17, 2019 at 2:02 pm

    I loved as much as you’ll receive carried out
    right here. The sketch is tasteful, your authored material stylish.
    nonetheless, you command get got an nervousness over that
    you wish be delivering the following. unwell unquestionably
    come further formerly again since exactly the same nearly very often inside
    case you shield this increase.

  194. child porno

    April 17, 2019 at 2:42 pm

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  195. Big Boobs Live Cams

    April 18, 2019 at 12:22 am

    Fantastic beat ! I wish to apprentice whilst you amend your web site, how can i subscribe
    for a blog site? The account helped me a applicable deal.
    I were tiny bit acquainted of this your broadcast provided shiny clear concept

  196. nekrofili porn

    April 18, 2019 at 6:31 am

    There is definately a great deal to know about this topic.

  197. INFORMATION TECHNOLOGY NEWS

    April 18, 2019 at 1:17 pm

    What’s Going down i’m new to this, I stumbled
    upon this I’ve found It absolutely usful and it has aided
    me out loads. I am hoping to contribute & aid differenht users like its helped
    me. Good job.

  198. minecraft

    April 18, 2019 at 2:10 pm

    I am extremely impressed with your writing skills as well as with the layout on your weblog.
    Is this a paid theme or did you customize it yourself?
    Either way keep up the nice quality writing, it’s rare to see a nice blog like this one nowadays.

  199. Catering dietetyczny w Kaliszu

    April 19, 2019 at 11:04 am

    I am often to blogging and i really appreciate your content. The article has really peaks my interest. I am going to bookmark your site and keep checking for new information.

  200. Mistress Cams

    April 19, 2019 at 9:52 pm

    It’s really a cool and helpful piece of info. I am satisfied that you simply shared this helpful information with us.
    Please stay us up to date like this. Thanks for sharing.

  201. Dirty Girl Cam

    April 19, 2019 at 9:55 pm

    Hi to all, it’s actually a fastidious for me to visit this site, it consists of
    helpful Information.

  202. Tattooed Cam Girls

    April 19, 2019 at 11:56 pm

    Write more, thats all I have to say. Literally, it seems as though
    you relied on the video to make your point. You clearly know
    what youre talking about, why throw away your intelligence
    on just posting videos to your site when you could be giving us something informative to read?

  203. DMC5

    April 20, 2019 at 7:56 am

    I could not refrain from commenting. Exceptionally well written!

  204. minecraft

    April 21, 2019 at 8:25 am

    I got this website from my pal who informed me
    regarding this web site and now this time I am
    browsing this website and reading very informative articles or reviews
    here.

  205. Camila

    April 21, 2019 at 8:40 am

    I absolutely love your blog.. Excellent colors & theme. Did you develop this site yourself? Please reply back as I’m trying to create my own personal site and want to learn where you got this from or what the theme is named. Thanks!

  206. çocuk porno izle

    April 21, 2019 at 5:53 pm

    Thank you for your blog article.Really looking forward to read more. Will read on…

  207. Live Masturbation

    April 22, 2019 at 4:48 am

    Oh my goodness! Incredible article dude! Thanks, However
    I am going through troubles with your RSS.
    I don’t know why I am unable to join it.
    Is there anyone else getting the same RSS issues?
    Anyone that knows the answer can you kindly respond?
    Thanks!!

  208. logo

    April 22, 2019 at 1:20 pm

    I just want to tell you that I am newbie to weblog and definitely savored your page. More than likely I’m likely to bookmark your blog . You really come with awesome writings. Thanks a lot for sharing with us your website.

  209. minecraft

    April 22, 2019 at 2:32 pm

    Wow, this post is good, my sister is analyzing these things, therefore I am going to let know her.

  210. information online

    April 22, 2019 at 8:41 pm

    *I discovered your blog site on google and check a few of your early posts. Continue to keep up the very good operate. I just additional up your RSS feed to my MSN News Reader. Seeking forward to reading more from you later on!?

  211. Email me form

    April 23, 2019 at 8:16 pm

    Job very well done with this blog post.

  212. jotform

    April 24, 2019 at 10:40 am

    This blog is worth sharing.

  213. minecraft

    April 24, 2019 at 4:07 pm

    Hey there! I realize this is somewhat off-topic however I needed to ask.
    Does running a well-established website such as yours take a lot of work?
    I’m brand new to running a blog however I do write in my journal every day.

    I’d like to start a blog so I can share my own experience and feelings online.
    Please let me know if you have any recommendations
    or tips for new aspiring blog owners. Appreciate it!

  214. çocuk porno izle

    April 25, 2019 at 6:56 pm

    Say, you got a nice blog post.Thanks Again.

  215. minecraft

    April 26, 2019 at 8:56 am

    Hi there! I realize this is sort of off-topic but I needed
    to ask. Does managing a well-established website like yours take a massive amount work?
    I am completely new to operating a blog however I do write in my diary on a daily basis.
    I’d like to start a blog so I can easily share my personal experience and feelings online.
    Please let me know if you have any recommendations or tips for new aspiring blog owners.
    Thankyou!

  216. xtrasize سعر

    April 26, 2019 at 1:37 pm

    I am truly thankful to the holder of this web page who has shared this
    fantastic article at at this place.

  217. Shawn Goody

    April 26, 2019 at 2:41 pm

    I would like to consider the ability of thanking you for that professional guidance I have often enjoyed checking out your site. I’m looking forward to the particular commencement of my college research and the entire prep would never have been complete without dropping by your site. If I may be of any assistance to others, I’d personally be glad to help as a result of what I have gained from here.

  218. dowpisania.online marketing reklasacyjny

    April 27, 2019 at 9:22 am

    Oh my goodness! an amazing article dude. Thank you However I am experiencing issue with ur rss . Don?t know why Unable to subscribe to it. Is there anyone getting identical rss problem? Anyone who knows kindly respond. Thnkx

  219. Isaac Swanner

    April 27, 2019 at 8:07 pm

    I’m often to running a blog and i really respect your content. The article has actually peaks my interest. I’m going to bookmark your website and keep checking for brand new information.

  220. minecraft

    April 28, 2019 at 9:35 am

    Hi just wanted to give you a quick heads up and let you know a few of the pictures aren’t loading correctly.
    I’m not sure why but I think its a linking issue. I’ve tried it in two different internet browsers and both show the same outcome.

  221. beylikduzu eskort

    April 29, 2019 at 4:54 pm

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  222. instgram profiles

    April 30, 2019 at 4:44 am

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  223. çocuk porno izle

    April 30, 2019 at 5:33 am

    I appreciate you sharing this blog article. Much obliged.

  224. pepe izle

    April 30, 2019 at 6:00 pm

    I just want to mention I’m all new to blogs and certainly savored you’re web site. More than likely I’m want to bookmark your site . You surely have good writings. Appreciate it for sharing your web page.

  225. sell silver

    May 1, 2019 at 3:44 pm

    Hi there to all, how is everything, Ithink every onee is getting more from this
    site, and your views are pleasant designed for new people.

  226. buy copper

    May 1, 2019 at 11:37 pm

    Hey there! I understand this is somewhat off-topic but I
    needed to ask. Does building a well-established blog like yours require a lot of work?
    I am compleetely new to operating a blog but I doo write in my
    journal every day. I’d like to start a blog so I cann easily share my experience
    and views online. Please let me knkw if you have any kind of suggestions
    or tips for brand new aspiring bloggers. Thankyou!

  227. download

    May 3, 2019 at 12:39 pm

    I just want to say I am very new to blogs and truly savored you’re web site. More than likely I’m likely to bookmark your website . You amazingly come with superb articles and reviews. Regards for sharing your webpage.

  228. downloads

    May 4, 2019 at 8:35 am

    Thank you, I’ve just been searching for information approximately this topic for a while and yours is the greatest I’ve came upon so far. However, what about the conclusion? Are you certain concerning the supply?

  229. nekrofili porn

    May 5, 2019 at 2:47 am

    Great post. I used to be checking continuously this blog and I’m impressed!

  230. Sol Pirc

    May 5, 2019 at 1:30 pm

    I’d always want to be update on new articles on this web site , saved to favorites ! .

  231. Chester Karns

    May 6, 2019 at 8:29 am

    In my opinion, pick up study along with consult beneficial.

  232. Projekty Sanitarne Śląsk

    May 6, 2019 at 12:10 pm

    When I originally commented I clicked the -Notify me when new comments are added- checkbox and now each time a comment is added I get four emails with the same comment. Is there any way you can remove me from that service? Thanks!

  233. Sheree Sudderth

    May 6, 2019 at 1:23 pm

    You need to take part in a contest for one of the best blogs on the web. I will advocate this site!

  234. lego movie 2 video game walkthrough part 1

    May 6, 2019 at 3:02 pm

    hello!,I really together with your writing consequently a lot! share we maintain up a correspondence excess above your post on AOL? I require an expert on this House in the direction of unravel my problem. Maybe that is you! Getting a appear to be in advance in direction of glimpse by yourself.

  235. Maryanna Destephano

    May 7, 2019 at 10:45 am

    Fantastic submit. I used to be examining constantly this particular weblog that i’m inspired! Very helpful info especially the remaining stage We preserve such information a lot. I used to be searching for this specific information for a lengthy time. Thanks and finest of luck.

  236. Marshall Oas

    May 8, 2019 at 7:19 am

    I always was concerned in this subject and still am, thanks for putting up.

  237. kokain

    May 8, 2019 at 2:22 pm

    Thank you, I’ve just been searching for information approximately this topic for a while and yours is the greatest I’ve came upon so far. However, what about the conclusion? Are you certain concerning the supply?

  238. Oswaldo Gendernalik

    May 8, 2019 at 2:22 pm

    I was suggested this web site by my cousin. I am not sure whether this post is written by him as nobody else know such detailed about my difficulty. You are amazing! Thanks!|

  239. fishdom hack apk

    May 8, 2019 at 6:41 pm

    Oh my goodness! an amazing post dude. Thanks a lot However My business is experiencing trouble with ur rss . Do not know why Unable to join it. Will there be anybody acquiring identical rss difficulty? Anyone who knows kindly respond. Thnkx

  240. torento

    May 8, 2019 at 10:06 pm

    I loved as much as you will receive carried out right here. The sketch is tasteful, your authored subject matter stylish. nonetheless, you command get bought an nervousness over that you wish be delivering the following. unwell unquestionably come further formerly again as exactly the same nearly a lot often inside case you shield this hike.

  241. izmir

    May 9, 2019 at 12:17 am

    thank you web site admin

  242. keyloger

    May 9, 2019 at 12:32 pm

    I just want to mention I’m all new to blogs and certainly savored you’re web site. More than likely I’m want to bookmark your site . You surely have good writings. Appreciate it for sharing your web page.

  243. typeform

    May 9, 2019 at 5:03 pm

    me and my friends loved this blog.

  244. email me form

    May 9, 2019 at 5:04 pm

    Well written post. Thanks.

  245. produljenje penisa

    May 9, 2019 at 5:29 pm

    Amazing! Its in fact awesome piece of writing, I have
    got much clear idea about from this piece of writing.

  246. typeform

    May 10, 2019 at 5:44 am

    The best post on this topic i’ve found so far.

  247. scioly

    May 10, 2019 at 6:52 am

    I found this blog to the point. GOod job.

  248. crescimento peniano

    May 10, 2019 at 10:37 am

    constantly i used to read smaller articles which as well clear their motive, and that is also happening with this paragraph which I am reading at this time.

  249. codepen

    May 10, 2019 at 11:04 am

    You are doing a very good job with this blog. Thanks.

  250. seattle times

    May 10, 2019 at 11:05 am

    You’ve done an excellent job with this post.

  251. crecer el pene

    May 10, 2019 at 3:03 pm

    Whats up very nice web site!! Guy .. Beautiful ..
    Superb .. I’ll bookmark your blog and take the
    feeds additionally? I am happy to search out so many helpful info right here in the post, we want work out more techniques on this regard, thanks for sharing.
    . . . . .

  252. baby tree nails

    May 10, 2019 at 5:20 pm

    With havin so much content do you ever run into any issues of plagorism or copyright violation? My site has a
    lot of completely unique content I’ve either authored myself or outsourced but it looks like a lot of it
    is popping it up all over the web without my agreement.
    Do you know any ways to help prevent content from being stolen?
    I’d truly appreciate it.

  253. kamran khan

    May 12, 2019 at 8:02 am

    it is run smoothly but when user register and login then it show toast user not found

  254. istanbul escort

    May 12, 2019 at 3:32 pm

    As I site possessor I believe the content matter here is rattling great , appreciate it for your hard work. You should keep it up forever! Best of luck.

  255. drinks

    May 13, 2019 at 6:40 pm

    I just want to say I am very new to blogs and truly savored you’re web site. More than likely I’m likely to bookmark your website . You amazingly come with superb articles and reviews. Regards for sharing your webpage.

  256. Is Amway Legitimate Business Or Another Pyramid Scheme

    May 14, 2019 at 11:40 am

    Does your blog have a contact page? I’m having problems locating it
    but, I’d like to send you an e-mail. I’ve got some ideas forr your blog you might be interested iin hearing.
    Either way, gret site and I look forward too seeing it develop over time.

  257. jasa social media management jakarta

    May 15, 2019 at 6:37 pm

    I couldn?t resist commenting. Very well written!|

  258. clash royale hack apk android

    May 15, 2019 at 10:20 pm

    Hello there, I found your blog via Google even as searching for a comparable matter, your web site got here up, it appears great. I have bookmarked it in my google bookmarks.

  259. free amazon gift card generator

    May 16, 2019 at 2:48 pm

    I find myself coming to your blog more and more often to the point where my visits are almost daily now!

  260. good

    May 18, 2019 at 2:09 am

    Nice blog right here! Additionally your website rather a lot up very fast! What host are you using? Can I am getting your associate hyperlink in your host? I want my web site loaded up as fast as yours lol

  261. oxford

    May 18, 2019 at 10:10 am

    thank you web site admin

  262. cesme esford

    May 18, 2019 at 1:09 pm

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  263. izmir escort bayanlar

    May 19, 2019 at 3:26 pm

    Amazing blog layout here. Was it hard creating a nice looking website like this?

  264. Ina Conkel

    May 19, 2019 at 4:41 pm

    I had been honored to receive a call from my friend as soon as he found out the important tips shared on your own site. Studying your blog publication is a real excellent experience. Thanks again for taking into account readers at all like me, and I want for you the best of success as being a professional topic.

  265. mustang

    May 19, 2019 at 9:20 pm

    I just want to mention I’m all new to blogs and certainly savored you’re web site. More than likely I’m want to bookmark your site . You surely have good writings. Appreciate it for sharing your web page.

  266. ford eskort

    May 21, 2019 at 6:39 am

    I just want to tell you that I am newbie to weblog and definitely savored your page. More than likely I’m likely to bookmark your blog . You really come with awesome writings. Thanks a lot for sharing with us your website.

  267. wiki

    May 21, 2019 at 3:55 pm

    I Agree with you mate.

  268. how to get help in windows 10

    May 21, 2019 at 9:06 pm

    It’s remarkable in favor of me to have a website, which is beneficial in support of my knowledge.

    thanks admin

  269. Stephan

    May 22, 2019 at 3:17 am

    I totally like frequenting this particular blog. You have remarkable material that is definitely intriguing and even wise. I imagine you are the pacesetter in your sector. I just wish you would undoubtedly publish more frequently.

  270. polo gti

    May 22, 2019 at 11:46 am

    I loved as much as you will receive carried out right here. The sketch is tasteful, your authored subject matter stylish. nonetheless, you command get bought an nervousness over that you wish be delivering the following. unwell unquestionably come further formerly again as exactly the same nearly a lot often inside case you shield this hike.

  271. gamefly free trial

    May 22, 2019 at 2:44 pm

    This is my first time go to see at here and i am actually pleassant to read all at one place.

  272. viagre

    May 22, 2019 at 10:52 pm

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  273. dumen

    May 23, 2019 at 6:40 am

    Nice blog right here! Additionally your website rather a lot up very fast! What host are you using? Can I am getting your associate hyperlink in your host? I want my web site loaded up as fast as yours lol

  274. yagiz

    May 24, 2019 at 1:15 am

    thank you web site admin

  275. Gregory Mojzisik

    May 25, 2019 at 4:15 pm

    Sweet blog! I found it while surfing around on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Thanks

  276. Lue Werle

    May 25, 2019 at 7:27 pm

    Hi. I needed to drop you a quick note to impart my thanks. I’ve been watching your webpage for a month or so and have picked up a heap of sound information as well as enjoyed the way you’ve structured your article. I am setting about to run my own webpage however I think its too general and I would like to focus more on smaller topics.

  277. profile

    May 26, 2019 at 6:52 am

    Hi mates, how is everything, and what you would
    like to say concerning this piece of writing, in my view its truly awesome in support
    of me.

  278. Clicking Here

    May 26, 2019 at 6:58 am

    I’ve been exploring for a little bit for any high-quality articles or weblog posts in this kind of area . Exploring in Yahoo I at last stumbled upon this website. Reading this info So i’m glad to exhibit that I’ve a very good uncanny feeling I found out just what I needed. I most without a doubt will make sure to don’t disregard this web site and give it a look regularly.

  279. profoser

    May 26, 2019 at 7:25 am

    I have been exploring for a little for any high-quality articles or weblog posts in this kind of space . Exploring in Yahoo I ultimately stumbled upon this site. Studying this information So i am glad to show that I have an incredibly just right uncanny feeling I came upon just what I needed. I most undoubtedly will make sure to do not forget this site and give it a look on a relentless basis.

  280. viahra

    May 26, 2019 at 6:07 pm

    Amazing blog layout here. Was it hard creating a nice looking website like this?

  281. blog

    May 27, 2019 at 11:04 am

    The content on this blog couldn’t be better. good job.

  282. form

    May 27, 2019 at 11:09 am

    very Perfect post. Good Job..

  283. furkan vakfi

    May 27, 2019 at 11:13 am

    I just want to tell you that I am newbie to weblog and definitely savored your page. More than likely I’m likely to bookmark your blog . You really come with awesome writings. Thanks a lot for sharing with us your website.

  284. profosyonel

    May 27, 2019 at 3:22 pm

    thank you web site admin

  285. taht

    May 28, 2019 at 1:09 am

    I wish to show my gratitude for your kindness for individuals that require guidance on this one subject matter. Your very own dedication to getting the message all around appears to be really good and has in every case empowered ladies much like me to realize their objectives. Your personal invaluable help and advice indicates much to me and somewhat more to my colleagues. Thanks a lot; from all of us.

  286. guzel

    May 29, 2019 at 2:08 am

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  287. site link

    May 29, 2019 at 7:43 am

    hi!,I like your writing so much! share we communicate more about your post on AOL? I need an expert on this area to solve my problem. Maybe that’s you! Looking forward to see you.

  288. typeform

    May 29, 2019 at 10:12 am

    Good job with the blog. (Y)

  289. typeform

    May 30, 2019 at 5:57 am

    Excellent blog. Kudos.

  290. bakim

    May 30, 2019 at 9:47 am

    thank you web site admin

  291. donek

    May 30, 2019 at 9:47 am

    Only wanna tell that this is extremely helpful, Thanks for taking your time to write this.

  292. vieahra

    May 30, 2019 at 9:47 am

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  293. forbet

    May 30, 2019 at 8:23 pm

    I just want to say I am very new to blogs and truly savored you’re web site. More than likely I’m likely to bookmark your website . You amazingly come with superb articles and reviews. Regards for sharing your webpage.

  294. keko

    May 31, 2019 at 10:00 am

    Amazing blog layout here. Was it hard creating a nice looking website like this?

  295. merkez

    May 31, 2019 at 11:16 am

    thank you web site admin

  296. fifa55

    May 31, 2019 at 3:34 pm

    Hey there I am so grateful I found your blog page, I really found you
    by error, while I was searching on Digg for something else, Nonetheless I am here
    now and would just like to say kudos for a fantastic post and a all round enjoyable blog (I also love the theme/design),
    I don’t have time to look over it all at the minute but I have bookmarked it and also added in your RSS feeds, so when I have time
    I will be back to read a great deal more, Please do keep up
    the excellent work.

  297. ciag

    June 1, 2019 at 11:04 am

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  298. esford

    June 1, 2019 at 11:04 am

    thank you web site admin

  299. altın

    June 1, 2019 at 11:04 am

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  300. name

    June 1, 2019 at 11:04 am

    Your positions continually have got a lot of really up to date info. Where do you come up with this? Just saying you are very resourceful. Thanks again

  301. my profile

    June 1, 2019 at 6:21 pm

    I was more than happy to find this page. I need to to thank you
    for ones time just for this wonderful read!! I definitely really liked every bit of it and i also have you bookmarked to see new things on your blog.

  302. gothic

    June 3, 2019 at 3:52 am

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  303. hey

    June 3, 2019 at 8:00 pm

    Amazing blog layout here. Was it hard creating a nice looking website like this?

  304. bok

    June 3, 2019 at 8:00 pm

    Your positions continually have got a lot of really up to date info. Where do you come up with this? Just saying you are very resourceful. Thanks again

  305. evlilik

    June 3, 2019 at 9:51 pm

    thank you web site admin

  306. hdp

    June 4, 2019 at 5:00 am

    thank you web site admin

  307. Sexy Ass Cams

    June 4, 2019 at 4:59 pm

    It’s nearly impossible to find educated people in this particular topic,
    however, you sound like you know what you’re talking about!
    Thanks

  308. ford

    June 4, 2019 at 10:09 pm

    I just want to mention I’m all new to blogs and certainly savored you’re web site. More than likely I’m want to bookmark your site . You surely have good writings. Appreciate it for sharing your web page.

  309. home

    June 6, 2019 at 5:50 am

    I just want to mention I’m all new to blogs and certainly savored you’re web site. More than likely I’m want to bookmark your site . You surely have good writings. Appreciate it for sharing your web page.

  310. firavun

    June 7, 2019 at 9:32 am

    How long does a copyright last on newspaper articles?. . If a service copies newspapers articles and then posts it in a database on the Internet, is there also a copyright on the Internet content?.

  311. Medium

    June 7, 2019 at 11:04 am

    I am also a learning blogger. Your blog is an inspiration.

  312. ESS

    June 7, 2019 at 11:09 am

    Very Good post. Perfect Job..

  313. gursel

    June 7, 2019 at 3:28 pm

    thank you web site admin

  314. can

    June 8, 2019 at 7:20 am

    thank you web site admin

  315. hot

    June 8, 2019 at 9:03 am

    Amazing blog layout here. Was it hard creating a nice looking website like this?

  316. dovmeci

    June 9, 2019 at 12:09 am

    You made some decent factors there. I appeared on the internet for the issue and found most people will associate with with your website.

  317. var

    June 9, 2019 at 7:52 am

    I just want to say I am very new to blogs and truly savored you’re web site. More than likely I’m likely to bookmark your website . You amazingly come with superb articles and reviews. Regards for sharing your webpage.

  318. interesting article

    June 9, 2019 at 11:44 am

    You are so cool! I don’t think I have read a single thing like this
    before. So great to discover another person with some
    genuine thoughts on this subject matter. Really.. many thanks for starting
    this up. This website is something that is needed on the web, someone with a little
    originality!

  319. Dakota Tinkler

    June 10, 2019 at 11:17 am

    Greate share and thanks for this helpfoul content . hope to see more from you .

  320. Jeff Top

    June 10, 2019 at 1:18 pm

    wowwwwwwwwwww greate share from you

  321. layer

    June 11, 2019 at 7:05 am

    You made some respectable points there. I seemed on the web for the issue and found most people will go together with along with your website.

  322. pici

    June 11, 2019 at 7:42 am

    thank you web site admin

  323. Forum

    June 11, 2019 at 6:49 pm

    I am also a blogger. Your blog is what motivates me..

  324. bye

    June 12, 2019 at 7:31 pm

    thank you web site admin

  325. canta

    June 13, 2019 at 12:20 am

    Amazing blog layout here. Was it hard creating a nice looking website like this?

  326. Burlington ontario roofing

    June 13, 2019 at 6:31 am

    Finally I found what I was looking for, only took 4 pages of search results.

Leave a Reply